2011-11-01 75 views
1

我是新來的芹菜,可能做錯了什麼,但我已經 花了很多嘗試弄清楚如何正確配置芹菜 。如何正確配置和運行遠程芹菜工作?

因此,在我的環境中,我有2個遠程服務器;一個是主要的(它有 公共IP地址和大部分的東西像數據庫服務器,rabbitmq 服務器和web服務器運行我的web應用程序在那裏),另一個 用於特定任務,我想從 異步調用main服務器使用芹菜。

我打算使用RabbitMQ作爲經紀人和結果後端。 芹菜配置非常簡單:

CELERY_IMPORTS = ("main.tasks",) 
BROKER_HOST = "Public IP of my main server" 
BROKER_PORT = 5672 
BROKER_USER = "guest" 
BROKER_PASSWORD = "guest" 
BROKER_VHOST = "/" 
CELERY_RESULT_BACKEND = "amqp" 

當我運行在主服務器任務的工人被執行只是 很好,但是當我運行它在遠程服務器上只有少數任務 執行然後工人卡住不能執行任何 任務。當我重新啓動工作人員時,它會執行一些更多的任務,並再次卡住 。任務內沒有什麼特別的,我甚至試過 一個測試任務,只是增加了2個數字。我試圖以不同的方式運行工作人員 (使用celeryd_multi進行了惡化,而不是使用celeryd_multi來設置不同的併發性,並且 )沒有任何幫助。

可能是什麼原因?我錯過了什麼?除了代理(RabbitMQ)之外,我還需要在主服務器上運行 嗎?或者是 它是芹菜中的一個bug(我試過幾個版本:2.2.4,2.3.3和dev, 但是它們都沒有工作)?

唔...我只是轉載的本地工人同樣的問題,所以我 真的不知道它是什麼...是每N個任務執行後重新啓動芹菜 工人要求?

任何幫助將是非常讚賞:)

回答

1

不知道你最終解決問題,但我有類似的症狀。原因是(無論出於何種原因)從任務內部打印語句導致任務不完成(可能是某種死鎖情況?)。只有一些任務具有打印語句,所以當最終執行這些任務時(由併發選項設置的)工作人員數量全部耗盡,導致任務停止執行。