我正在考虑使用Gearman处理MySQL表jobs_queue
上的作业,并将其状态标记为locked
,这样作业不会被两次接受(现在正在发生)。
问题:在上述场景中,作业可能需要10秒才能完成,我希望每2秒开始处理一个新作业(以达到某种形式的速率限制)。当前,从表中检索作业的服务器也是处理作业的同一台机器。
如所述,齿轮工是否适合做作业排队?客户端将创建由自己完成的作业(同一台机器上的多个工作人员)。
发布于 2012-10-06 05:43:09
是的,但是您可以将作业直接发送到Gearman作业服务器,而不是有一个MySQL作业列表。这意味着您将不必“锁定”作业。
您可以让多个工作人员运行相同的工作。
如果你像我说的那样做,你的工人创造更多的工作将需要使用变速箱做背景,否则它将结束在一个死循环。http://www.php.net/manual/en/gearmanclient.dobackground.php
https://stackoverflow.com/questions/12568872
复制