我有一些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文件夹中,它们应该在没有手动编辑或类似需要的情况下运行。