2017-05-25 121 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