同一台服务器上的多个齿轮工人(PHP)

时间:2012-09-24 16:11:53

标签: php mysql rabbitmq gearman

我正在考虑使用Gearman处理MySQL表jobs_queue上的作业,并将其状态标记为locked,使得作业不会被取两次(现在正在发生)。 / p>

问题:在上面的场景中,作业可能需要10秒才能完成,我希望新作业每2秒开始处理一次(以实现某种形式的速率限制)。目前,从表中检索作业的服务器也是处理作业的同一台计算机。

齿轮手是否适合按照描述进行排队?客户端将创建自己完成的工作(同一台机器上的多个工作人员)。

1 个答案:

答案 0 :(得分:2)

是的,但是您可以直接将作业发送到Gearman作业服务器,而不是拥有MySQL作业列表。这意味着您不必“锁定”工作。

您可以让多名员工运行相同的工作。

如果你这样做的方式,我说你的工人创造更多的工作将需要使用gearmam做背景,否则它将最终陷入死循环。 http://www.php.net/manual/en/gearmanclient.dobackground.php

相关问题