[英]What should I use for simple cron jobs management in PHP project?
我想在PHP项目中进行简单的类似cron的管理,有一些我想要的东西:
我在一个项目中有过这种调度系统的经验并喜欢它。 它提供了许多巧妙的东西:
我只想在project / cron子目录上使用/ bin / run-parts,但是没有设法按我的意愿分割日志。 分裂式日志记录是非常好的功能。
所以,我只是觉得这种系统之前已经创建了很多次,是否有任何现成的PHP项目解决方案? 基本上它只是一些更智能的运行部件相当于。 应该再写一次吗?
PS还有更多像Jobman这样的特定于作业队列的解决方案。 他们很棒,但这个问题是关于项目cron jobs轻量级解决方案。
我目前的工作采取了略微不同的方法。 我们使用Jenkins (以前的Hudson)来满足我们与PHP相关的调度需求。 这很好,因为您可以利用现有的通知基础设施(jabber,电子邮件等),它与我们的代码发布的其他构建作业并列。 还可以实时查看控制台输出,获取每次运行的成绩单等。
我记录了最近我们组织PHP作业的方式,以便我们可以轻松利用CLI中的应用程序框架,这是Jenkins与作业的接口方式。
这是关于组织用于Jenkins或Hudson的PHP批处理作业的帖子:
Periodic是一个用PHP编写的CRON兼容任务管理器 。 为了使它像你想要的那样工作,仍然有一些工作要做,但它应该给你一个良好的基础。
使用此功能:
function parse_crontab($time, $crontab)
{$time=explode(' ', date('i G j n w', strtotime($time)));
$crontab=explode(' ', $crontab);
foreach ($crontab as $k=>&$v)
{$v=explode(',', $v);
foreach ($v as &$v1)
{$v1=preg_replace(array('/^\*$/', '/^\d+$/', '/^(\d+)\-(\d+)$/', '/^\*\/(\d+)$/'),
array('true', $time[$k].'===\0', '(\1<='.$time[$k].' and '.$time[$k].'<=\2)', $time[$k].'%\1===0'),
$v1
);
}
$v='('.implode(' or ', $v).')';
}
$crontab=implode(' and ', $crontab);
return eval('return '.$crontab.';');
}
var_export(parse_crontab('2011-05-04 02:08:03', '*/2,3-5,9 2 3-5 */2 *'));
var_export(parse_crontab('2011-05-04 02:08:03', '*/8 */2 */4 */5 *'));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.