gpt4 book ai didi

php - 我应该在 PHP 项目中使用什么进行简单的 cron 作业管理?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:48:45 25 4
gpt4 key购买 nike

我想要在 PHP 项目中进行类似 cron 的简单管理我想要一些东西:

  1. php job worker 只是放置在项目目录中某个子目录中的普通脚本
  2. 项目根目录下有/cron/daily、/cron/monthly ... 等子树,包含所有 workers
  3. 没有必要在添加每个 worker 时弄乱 crontab。
  4. 所有脚本都由运行部分之类的东西以相应的频率运行,并且它们各自的输出记录到单独的文件中,例如/var/log/projectname/cron/daily/somescript.log
  5. 如果/cron/daemon 目录包含应该永远(每分钟)运行但不超过 1 个实例的脚本,那就太好了

我曾在一个项目中使用过这种调度系统,并且非常喜欢它。它提供了许多简洁的东西:

  • 作业是项目脚本,位于项目目录中,由 git 跟踪。
  • 不需要 crontab 困惑。
  • 整理日志。
  • 守护进程很容易构建。

我只会在项目/cron 子目录上使用/bin/run-parts,但无法按照我的意愿拆分日志。拆分日志记录是一个非常好的功能。

所以,我只是想这种系统以前创建过很多次,有没有现成的PHP项目解决方案?基本上它只是一些更智能的运行部件等价物。是不是应该再写一遍?

附言还有很多特定于作业队列的解决方案,例如 Gearman。它们很棒,但是这个问题是关于项目 cron 作业的轻量级解决方案。

最佳答案

在我目前的工作中,我们采取了稍微不同的方法。我们使用 Jenkins (以前的 Hudson)满足我们 PHP 相关的调度需求。这很好,因为您可以利用现有的基础设施进行通知(jabber、电子邮件等),并且它与我们用于代码发布的其他构建作业并存。还可以实时查看控制台输出、获取每次运行的记录等。

我记录了我们最近组织 PHP 作业的方式,以便我们可以轻松地从 CLI 中利用我们的应用程序框架,这就是 Jenkins 与作业的接口(interface)。

这是关于组织用于 Jenkins 或 Hudson 的 PHP 批处理作业的帖子:

http://blog.shupp.org/2011/03/15/organizing-php-batch-jobs/

关于php - 我应该在 PHP 项目中使用什么进行简单的 cron 作业管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4948499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com