2015-08-15 56 views
0

我已覆蓋芹菜默認隊列。以下是提到的設置。更改芹菜默認隊列,未按預期正常工作

設置

BROKER_URL = "amqp://managedbrokerurl/username/" 
CELERY_DEFAULT_QUEUE = 'project.env.default' 
CELERY_ROUTES = {"app1.tasks.push_api_task": {"queue": "project.env.priority_queue"}} 

工人

python manage.py celery worker -n env_worker -Q project.env.default 
python manage.py celery worker -n env_worker -Q project.env.priority_queue 

按照我期待所有的任務除了app1.tasks.push_api_task應該去排隊project.env.default配置。 但是有一個奇怪的問題正在發生,例如任務將進入project.env.default隊列以及celery隊列(如果未被覆蓋,這是默認的)。

我檢查了我們的代碼庫,並且沒有任何地方使用celery隊列進行任務發佈。

如果你們遇到同樣的問題,請幫忙。

Celery Queue Screen

+2

一件事 - 你應該工人之間爲'-n'使用不同的值。 – scytale

回答

0

甲工人實例可以從任何數目的隊列消耗。默認情況下,它 會從CELERY_QUEUES定義的所有隊列消耗設置 (如果沒有指定默認命名芹菜隊列)

我想你應該看到a section of celery docs

您也可以啓動多個同一臺機器上的工作人員。如果你這樣做 務必通過指定 與--hostname主機名給一個唯一的名稱,以每個個體勞動者 | -n參數:

Source

+0

我改變了建議的設置,但沒有幫助我。下面是提到的設置########################芹菜設置################### #### BROKER_URL = '' CELERY_DEFAULT_QUEUE = 'env.stg.default' CELERY_QUEUES =( 隊列( 'gm.stg.default', 交換( 'env.stg.default'), routing_key = 'env.stg.default'),) CELERY_DEFAULT_EXCHANGE_TYPE ='直接' –