仅使用一个cron作业以不同的时间间隔运行PHP脚本

时间:2013-11-18 17:50:04

标签: php cron scheduled-tasks

我有一些PHP脚本应该以不同的时间间隔运行,例如每分钟,每小时,每天等等,没有太具体的。

我想创建一个轻量级调度程序PHP类,其工作方式如下:

需要执行的所有php脚本都在名为jobs的文件夹中,而调度程序文件应该在父目录中。

jobs文件夹中的每个文件都应包含有关运行频率的信息。 应该通过cron作业设置调度程序文件,以便每分钟运行一次,以便它可以覆盖所有这些间隔。此外,我想它包含jobs文件夹的所有文件,如果满足运行条件,则应运行任务。

理想情况下,这不应使用数据库或某些文件存储。

我想代码是这样的:

scheduler.php

$base = dirname(__FILE__);
if ($handle = opendir($base.'/jobs')) {

    while (false !== ($file = readdir($handle))) {
        if(strpos($file,'.php') !== false) {
            include($base.'/jobs/'.$file);
        }
    }
  }

job.php的样本

if(run_every_hour()) {
  Code...
}

我的问题是获得run_every_hour()run_every_minute()函数,如何在不使用某种数据库的情况下确定脚本是否应该运行?

可以检查当前时间,但这是不准确和不可靠的。

对此有何建议?

我已经找了一些调度脚本,但它们太复杂和复杂了。我想要的是将我的if函数条件调整到我的job.php文件并将它们放到jobs文件夹中,它们应该在没有手动编辑或类似需要的情况下运行。

0 个答案:

没有答案