2011-03-30 60 views
0

我正在處理一個包含消息隊列概念的項目。現在這個項目是用PHP編寫的,並且在郵件發送或郵件發送方面有更多的延遲。所以我建議在Perl或Python腳本中開發一個消息隊列。你能否建議哪種方法最適合PHP或Perl或Python?Perl,PHP,Python中的消息隊列

+0

你目前使用什麼排隊機制! – 2011-03-30 05:04:51

+0

您能告訴我們更多關於您將使用的隊列的性質嗎? – 2011-03-30 07:13:59

回答

6

一個可能的解決辦法是使用Gearman作爲隊列:

  • 你的PHP項目將消息發送到Gearman的,作爲背景的工作;並完成
  • 的Gearman將派遣這些消息給工人
  • 工人將處理工作 - 這樣做,可能會需要一段時間的東西

一個額外的優勢:一天,你需要多臺服務器以處理更大工作量,你已經有了需要的東西:Gearman會爲你處理負載平衡。

+0

更不用說,它已經與Perl,PHP和Python一起工作,如果您需要跨語言溝通,使其成爲一件容易的事。 – Charles 2011-03-30 05:10:31

+0

正是我在OP的另一篇文章中想到的。 – runrig 2011-03-31 13:49:23

2

PHP非常適合實現簡單的消息隊列。所以,如果你當前的代碼導致延遲,那麼這是因爲你的設計,而不是因爲PHP的一些限制。切換到其他語言不會幫助你。無論語言如何,錯誤代碼都是錯誤的代碼

你可以做的最好的事情是與現有的消息隊列。帕斯卡推薦Gearman。我曾與(並非常喜歡)Beanstalkd。如果你需要一噸的功能,看看ApacheMQRabbitMQ

這就是說,如果你堅持實現你自己的消息隊列,我會建議堅持使用PHP。這樣您就可以重用現有應用程序中的代碼(例如,重新使用您的模型和數據庫API)。