2017-05-25 117 views
0

我一直在使用codeigniter开发一个php mvc web应用程序,需要处理一些长时间运行的任务。从Codeigniter开始Gearman工作人员

我检查了几个选项(RabbitMQ,Gearman,IronMQ等),并决定使用它的简单性的Gearman。我查阅了gearman.org上的示例和教程,其中显示了如何使用worker.php启动GearmanWorker

我担心的是,在mvc架构中,这个GearmanWorker是启动并启动的?

  1. 是否通过控制器的方法启动或
  2. 我们是否需要启动GearmanWorker从CLI(控制台)?如果它是从CLI开始那么当我们做一个GearmanClient->do('some task')

一个similar question,但不够明确,我

回答

0

我不建议再启动工作如何处理,如果已经启动的工人已停止出于某种原因来自控制器。您可以启动几名通过网络分发的工作人员,并使用workerstext command作为监控目的。 gearmand向下一个空闲工作者派遣工作。

也许SUBMIT_JOB_BG是一个很好的选择,可以避免Web服务器超时,如果作业执行时间很长。

+0

谢谢。看起来像这个演示文稿https://www.slideshare.net/mobile/giberti/gearman-and-codeigniter会给出一些清晰的想法。 – Rifky

+1

很好的演示文稿。感谢分享。但考虑到它有点过时了。我会建议你使用[github](https://github.com/gearman/gearmand)的最新版本, – palik