我有一个cron作业,可运行项目中的所有脚本。 Cron每10分钟运行一次。我想做的只是每天在特定时间运行一些特定的代码。
问题是,我无法更改cron的运行频率,因此必须间隔10分钟。每天只在给定时间附近运行一些代码的最佳方法是什么?
我还可以访问记录最近更新时间的变量
$dailyTimeToRunCode = '10:00:00';
我不确定从哪里开始。
任何帮助将不胜感激。
答案 0 :(得分:0)
由于我们不确定每个小时是否会在00、10、20等每小时运行,所以我想出了这个解决方案。
它将基本上检查10:00:00之前是否还有不到10分钟的时间,然后精确地等待直到那个时间:
<?php
/* Set timezone and max execution time */
date_default_timezone_set('America/Los_Angeles');
ini_set('max_execution_time', 0);
/* First, check if we are 10min or less before the desired launch time */
$dailyTimeToRunCode = '10:00:00';
$time_left = strtotime(date('Y-m-d '.$dailyTimeToRunCode)) - time();
if ($time_left > 0 && $time_left < 10 * 60)
{
/* Wait to until the desired exact time */
sleep($time_left);
/* Do something */
}