【发布时间】:2011-06-24 07:49:13
【问题描述】:
我想在 PHP 项目中进行类似 cron 的简单管理 有一些我想要的东西:
- php job worker 只是简单的脚本,放置在项目目录的某个子目录中
- 项目根目录中有 /cron/daily、/cron/monthly ... 等子树,包含所有工作人员
- 没有必要在添加每个工人时都弄乱 crontab。
- 所有脚本都由类似 run-parts 之类的东西以相应的频率运行,并且它们各自的输出记录到单独的文件中,例如 /var/log/projectname/cron/daily/somescript.log
- 如果 /cron/daemon 目录包含应该永远(每分钟)运行但不超过 1 个实例的脚本,那就太好了
我曾在一个项目中使用过这种调度系统,并且很喜欢它。它提供了许多简洁的东西:
- 作业是项目脚本,驻留在项目目录中,由 git 跟踪。
- 不需要 crontab 搞乱。
- 日志整理完毕。
- 守护程序很容易构建。
我只会在项目 /cron 子目录上使用 /bin/run-parts,但没有按我的意愿拆分日志。并且拆分日志记录是非常好的功能。
所以,我只是觉得这种系统以前创建过很多次,有没有现成的 PHP 项目可用的解决方案?基本上它只是一些更智能的运行部件等价物。还是写一遍吧?
附:还有更多特定于作业队列的解决方案,例如 Gearman。他们很棒,但是这个问题是关于项目 cron 作业的轻量级解决方案。
【问题讨论】:
-
在谷歌上搜索“pseudo-cron”,有很多免费的脚本可供修改。但总的来说,我会自己写;我以前做过,不难。
-
谢谢,pseudo-cron 是有趣的东西,但不是很方便:作业根本不是 cron 作业,可能会错过计划,你应该编写 pseudo-crontab。至于难度——是的,没那么难,实际上我只是有一种感觉,我可能不知道一些很好的解决方案,我要重新发明和重写
-
对下面给出的答案有何回应?
标签: php cron scheduling crontab scheduler