2012-09-03 95 views
5

我嘗試部署使用Django Django的項目,但我有這些問題沒有解決:Django的芹菜在多個服務器的生產環境

  • 我應該運行的每個Web服務器一個celeryd?
  • 我應該只運行一臺RabbitMQ服務器,在另一臺運行celeryd的機器上(不),可以訪問我的所有Web服務器?或RabbitMQ也必須在每臺Web服務器上運行?
  • 如果代碼在所有Web服務器中都相同,我該如何使用定期任務?

感謝您的回答。

回答

6

這實際上取決於項目的規模,理想情況下你有RabbitMq,芹菜工和網絡工作人員在不同的機器上運行。

您只需要一個RabbitMQ並最終有多個隊列工作者(當然,更大的隊列需要更多的工作人員)。

你不需要每個webworker有1名芹菜工作者,網絡工作者將把任務發佈給經紀人,然後工人將從那裏得到他們,事實上webworker並不關心連接到經紀人的工作人員的數量,因爲它只與經紀人溝通。

當然,如果你正在開始一個項目是有意義的保持在同一硬件上的一切,並保持預算低,等待交通和貨幣流動:)

要在具有相同的代碼無論他們是芹菜工作者/網絡服務器還是其他任何應用程序的每個運行實例。

+0

我應該怎麼做讓每個工作人員讀取相同的隊列?我花了很多時間尋找一個例子,但沒有發現。謝謝。 – user2372074

相關問題