2012-04-21 23 views
40

我是芹菜新手。我知道如何安裝和運行一臺服務器,但我需要將任務分配給多臺機器。 我的項目使用芹菜分配用戶請求傳遞到Web框架到不同的機器,然後返回結果。 我閱讀了文檔,但沒有提到如何設置多臺機器。 我錯過了什麼?如何在不同的機器上設置芹菜工?

回答

37

我的理解是,您的應用程序會將請求推送到排隊系統(例如rabbitMQ),然後您可以啓動不同機器上的任意數量的工作人員(訪問與提交任務的應用程序相同的代碼)。他們將從消息隊列中挑選任務,然後開始處理它們。一旦完成,他們將更新墓碑數據庫。

這樣做的結果是,您不必爲了啓動多個工作人員而做任何特殊的事情。只需在單獨的相同(源樹)機器上啓動它們。

具有消息隊列的服務器不需要與具有工作者的服務器相同,並且不需要與提交作業的機器相同。您只需將消息隊列的位置放在celeryconfig.py中,並且所有計算機上的所有工作人員都可以從隊列中提取作業以執行任務。

+0

你是對的!但主服務器如何知道所有的工人? – 2012-04-21 17:57:40

+0

「主服務器」是什麼意思? – 2012-04-21 18:07:50

+0

@ I'mTravelerClown我認爲你讓一個主人混淆了分佈式環境 - 奴隸之一。在基於芹菜的環境中沒有主服務器,但有許多節點有工作人員。您可能需要更好地解釋您的問題。 – FlaPer87 2012-04-21 19:14:15

0

我部署它的方式是這樣的:

  1. 克隆在Heroku的實例Django項目(這將運行前端)
  2. 添加RabitMQ作爲添加並配置它
  3. 克隆你的django項目插入另一個heroku實例(稱之爲worker),你將在其中運行芹菜任務