我的(免费)网站托管商允许我运行一个 cronjob(通过他们的网络界面)。但我需要运行两个。一个 cronjob 每 10 分钟运行一次,另一个每小时运行一次。
它们都是 PHP 文件。有没有办法只让一个作业(每 10 分钟运行一次)执行 10 分钟作业,然后每 6 次运行执行一小时作业?
答案1
您可以让 cron 每 10 分钟运行一次,然后在其中包含一些如下代码:
if ((int)date('i') < 5) { // run other job } // run main job
我正在检查是否少于 5 分钟标记,以防它没有在 mm:00 准确运行。如果您愿意,您可以获得小于该值的误差,例如 2 或类似的值。
这将在每次 cron 运行时运行 10 分钟的作业,并且仅当分钟数少于 5 时才运行 1 小时的作业。
您甚至可以将小时作业放在后台,以便它与 10 分钟作业同时运行。我将这留作练习。