【问题标题】:How to setup CRON job to run every 10 minutes exactly from 9:24:59 to 15:14:59?如何将 CRON 作业设置为从 9:24:59 到 15:14:59 每 10 分钟运行一次?
【发布时间】:2019-11-30 22:01:32
【问题描述】:

我需要为我的 PHP 代码设置 2 个定时任务非常精确。

Cron 1:

每天 9:24:59 到 15:14:59 之间每 10 分钟运行一次 cron 作业。 即 cron 作业从每天早上 9 小时 24 分 59 秒开始到下午 15 小时 14 分 59 秒。 cron 应该每 10 分钟运行一次, 示例:

9:24:59
9:34:59
9:44:59
9:54:59
...
14:54:59
15:04:59
15:14:59

Cron 2:

每天 9:15 到 15:05 之间每 10 分钟运行一次 cron 作业。 例如:

9:15
9:25
9:35
9:45
...
14:45
14:55
15:05

【问题讨论】:

  • 欢迎来到 StackOverflow!您可以使用正确的语法配置接近您需要的 cronjob,但如果您需要在第二个规模上使用它,那么您对 ​​cron 不走运。您可能只需要为此一直运行一个后台脚本(或者在您提早调用它时让脚本先休眠)或一些 cron 工具。一个您可能会喜欢的用于配置 cron 时间的工具:https://crontab.guru/
  • 奇怪的时间要求是怎么回事?
  • @Sammitch 我正在尝试为 NSE 股票构建 10 分钟烛台。通常烛台是用(OHLC)股票的开盘价、最高价、最低价、收盘价构建的,但根据我的要求,我不必构建带有上影线和下影线的烛台,所以我计划忽略高价和低价特定时间段内的股票。我刚刚计划用股票的开盘价和收盘价构建烛台。而不是通过 websocket 监听和记录股票的每一个分时数据,...
  • @Sammitch 我将只记录股票在特定时间的最后交易价格以构建烛台。例如,我将股票在 9:15 的最后成交价记录为前 10 分钟烛台的开盘价,并将 9:24:59 的最后成交价作为前 10 分钟烛台的收盘价。同样每 10 分钟一次。第一个烛台:开盘价 - 9:15;收盘价 - 9:24:59;第二根烛台:开盘价 - 9:25;收盘价 - 9:34:59 ;

标签: php cron cpanel cron-task


【解决方案1】:

您可以使用 bash 语法在 crontab 文件中指定脚本的时间范围。例如参见:Cron jobs and random times, within given hoursHow to check if the current time is between 23:00 and 06:30

在一行中使用 bash 命令可能难以理解和维护。一个更简单的选择是使用 3 个 cron 选项卡条目。第一个条目将从 09:25 到 09:55 每 10 分钟运行一次脚本。第二个条目将从 10:05 到 14:55 每 10 分钟运行一次脚本。第三个条目将从 15:05 到 15:15 运行脚本。这三个 crontab 条目将导致脚本在 09:25、09:35、09:45 .... 15:15 运行。以下是三个 crontab 条目:

25-55/10 9 * * * script-path
5-55/10 10-14 * * * script-path
5-15/10 15 * * * script-path

您应该确认脚本在正确的时间运行

【讨论】:

  • 我没有服务器的 shell 脚本权限,因为我使用的是共享托管服务器,我无法在 9:24:59 从我的 php 代码准确地启动 cron 作业。我必须通过 cpanel 的 cron 作业编辑器创建 cron 作业并运行所需的 php 文件。
  • 感谢您的解决方案。我的 cron 选项卡编辑器的语法有点不同,但我想通了,一切都很好。我真的很感谢你的帮助。根据我的 Cron 编辑器,Cron 1 语法:15,25,35,45,55 9 * * * script-path 和 5,15,25,35,45,55 10,11,12,13,14 * * *脚本路径和 5 15 * * * 脚本路径。对于 Cron 2 语法:24,34,44,54 9 * * * sleep 59;脚本路径和 4,14,24,34,44,54 10,11,12,13,14 * * * sleep 59;脚本路径和 4,14 15 * * * sleep 59;脚本路径。
【解决方案2】:

要让它每 10 分钟运行一次任何进程,只需添加:

*/10 * * * *

我会通过我的 PHP 函数来限制时间。

Source

【讨论】:

  • 您也可以使用-设置小时范围:*/10 9-15 * * *
  • @user3116428 我没有服务器的 shell 脚本权限,因为我使用的是共享托管服务器,我无法在 9:24:59 从我的 php 代码准确地启动 cron 作业。我必须通过 cpanel 的 cron 作业编辑器创建 cron 作业并运行所需的 php 文件。
猜你喜欢
  • 2018-02-23
  • 1970-01-01
  • 2013-10-26
  • 2017-10-15
  • 2022-07-07
  • 2018-04-27
  • 2021-12-18
  • 2019-11-28
  • 2023-03-19
相关资源
最近更新 更多