PHP:从初始日期开始每24小时发布一次cron作业

时间:2016-12-07 10:10:32

标签: php cron

我想知道我是否能得到一些帮助。

我有一个每隔5分钟运行一次的cronjob。

我的数据库中还有一些条目,其中“开始日期”格式为

 'yyyy-mm-dd HH:mm:ss'

我想要做的是在开始日期后24小时为每个条目运行一个特定的命令。

因此,例如,如果一个条目的开始日期为2016-11-18 12:08:44,我想在2016-11-19 12:08:44 ...上对该条目运行命令因为cron每5分钟只运行一次,我不指望确切地说是在24小时,但尽可能接近(每个方向5分钟)。

有没有人可以给我一个如何在PHP中实现这个目标的例子?

非常感谢。

2 个答案:

答案 0 :(得分:0)

你应该这样做:

  1. 添加一列"所需的发布日期"在DB(Nullable)。
  2. 写一个PHP脚本,计算所有期望的发布日期'来自' start_date' (并使用计算日期更新数据库)。
  3. 在此PHP脚本上添加块,用于初始化当前日期时间并与所需的启动日期进行比较'间隔10分钟。
  4. 编辑:

    这是一段源代码,未经过测试

    $datetime = new \Datetime();
    $timestamp = $datetime->getTimestamp();
    
    $datetime_desired_launch = new \Datetime($your_formatted_datetime_from_db);
    $desired_timestamp = $datetime_desired_launch->getTimestamp();
    
    // I have manipulate timestamp for more efficiency
    $launch_min_interval = $desired_timestamp - 5 * 3600; // - 5 minutes
    $launch_max_interval = $desired_timestamp + 5 * 3600; // + 5 minutes
    
    if ($timestamp >= $launch_min_interval && $timestamp <= $launch_max_interval) {
      // Here launch action...
    }
    

    小心时区!

    希望这有帮助!

答案 1 :(得分:0)

你可以使用crontab每5分钟编写一个脚本

在此脚本中,您可以检查日期并查看其他脚本