PHP上的任务/作业调度

时间:2014-09-03 10:19:01

标签: php cron gearman beanstalkd

我们基于Zend 1的系统有一个后台进程作为守护进程运行,每小时检查用户是否已过期,如果是,系统将向这些过期用户发送验证邮件。

代码非常简单:

while(1) {
    $worker = ... //get verification worker
    $worker->run();

    sleep(3600); //run hourly
}

我们希望通过免费工具寻找更好的方法来替换此代码以在系统中安排作业。 Zend Job Queue是一个非常好的方法,但它是商业化的。

我认为以下两种方法作为Zend Job Queue替代方案:

  1. 不是运行守护进程,而是在crontab上配置cron作业以每小时运行PHP脚本,但我不确定它是否在上面的代码上更好。

  2. 在nodejs服务器上运行node cron直接调用PHP脚本。

  3. 我也看过Gearman和bean,他们是否支持工作安排,但实际上却是这样。

    请建议是否有更好的方法来安排PHP的任务。

2 个答案:

答案 0 :(得分:2)

Cron绝对是自动执行任务的首选方式,而不是无限循环中的php脚本。

请参阅:http://en.wikipedia.org/wiki/Cron

许多人还想考虑使用Zend Server,它包含一个名为Zend Job Queue的组件,它提供任务和活动的离线异步处理。

请参阅:http://files.zend.com/help/Zend-Server-6/content/jobs_component.htm

请参阅:http://www.zend.com/en/products/server

答案 1 :(得分:0)

0      *      *       *       *       /usr/bin/php -q /yourpath/verification_worker.php

您可以使用crontab每小时运行此任务

希望这有帮助