我想要在 PHP 项目中进行类似 cron 的简单管理 我想要一些东西:
- php job worker 只是放置在项目目录中某个子目录中的普通脚本
- 项目根目录下有/cron/daily、/cron/monthly ... 等子树,包含所有 workers
- 没有必要在添加每个 worker 时弄乱 crontab。
- 所有脚本都由运行部分之类的东西以相应的频率运行,并且它们各自的输出记录到单独的文件中,例如/var/log/projectname/cron/daily/somescript.log
- 如果/cron/daemon 目录包含应该永远(每分钟)运行但不超过 1 个实例的脚本,那就太好了
我曾在一个项目中使用过这种调度系统,并且非常喜欢它。它提供了许多简洁的东西:
- 作业是项目脚本,位于项目目录中,由 git 跟踪。
- 不需要 crontab 困惑。
- 整理日志。
- 守护进程很容易构建。
我只会在项目/cron 子目录上使用/bin/run-parts,但无法按照我的意愿拆分日志。拆分日志记录是一个非常好的功能。
所以,我只是想这种系统以前创建过很多次,有没有现成的PHP项目解决方案?基本上它只是一些更智能的运行部件等价物。是不是应该再写一遍?
附言还有很多特定于作业队列的解决方案,例如 Gearman。它们很棒,但是这个问题是关于项目 cron 作业的轻量级解决方案。
最佳答案
在我目前的工作中,我们采取了稍微不同的方法。我们使用 Jenkins (以前的 Hudson)满足我们 PHP 相关的调度需求。这很好,因为您可以利用现有的基础设施进行通知(jabber、电子邮件等),并且它与我们用于代码发布的其他构建作业并存。还可以实时查看控制台输出、获取每次运行的记录等。
我记录了我们最近组织 PHP 作业的方式,以便我们可以轻松地从 CLI 中利用我们的应用程序框架,这就是 Jenkins 与作业的接口(interface)。
这是关于组织用于 Jenkins 或 Hudson 的 PHP 批处理作业的帖子:
关于php - 我应该在 PHP 项目中使用什么进行简单的 cron 作业管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4948499/