Gearman Worker以ulabox symfony插件开始

时间:2014-07-07 12:24:34

标签: symfony gearman

再一次,我坚持在Gearman。我正在实施ulabox gearman Bundle,效果很好。但是有两件事我还没有解决。

  • 我如何开始工作? 在文档中,我应该首先执行一个worker并启动代码。

https://github.com/ulabox/GearmanBundle/blob/master/README.md

打开第一个控制台并运行:

$ php app / console gearman:worker:execute --worker = AcmeDemoBundle:AcmeWorker

现在打开另一个控制台并运行:

$ php app / console gearman:client:execute --client = UlaboxGearmanBundle:GearmanClient:hello_world --worker = AcmeDemoBundle:AcmeWorker --params =“{\”foo \“:\”bar \“}”

所以,如果我不手动启动工作人员,那么工作将由他自己完成。如果我开始工作,每个人都很好。但至少,手动启动有点奇怪,即使设置了x的迭代,这样工作人员也会在完成这么多工作后自杀。

所以,请有人帮我解决这个问题:((( Heeeeeelp :) lol

提前感谢亲切的问候

菲尔

1 个答案:

答案 0 :(得分:0)

是的,在后台运行一些任务不仅需要运行Gearman,还需要工作人员。 所以你已经跑了#34; gearman"等待一些命令(e.x。电子邮件发送)。 此外,你有等待工人。

当gearman查看新命令时,他会寻找第一个自由工作者并将此命令传递给它。 下一个工作进程执行命令,并在完成返回Gearman服务器后完成并准备处理新命令。

更多的工作人员可以在队列中处理更快的命令。

您可以使用"主管"用于自动维护工人运行。 您可以找到更多信息的链接:

http://www.daredevel.com/php-jobs-with-gearman-and-supervisor/ http://www.masnun.com/2011/11/02/gearman-php-and-supervisor-processing-background-jobs-with-sanity.html Running Gearman Workers in the Background