我對我的配置應該看起來像設置主題交換有點困惑。主題與芹菜和兔子交換中國
http://www.rabbitmq.com/tutorials/tutorial-five-python.html
這是想什麼我來完成:
Task1 -> send to QueueOne and QueueFirehose
Task2 -> sent to QueueTwo and QueueFirehose
則:
Task1 -> consume from QueueOne
Task2 -> consume from QueueTwo
TaskFirehose -> consume from QueueFirehose
我只想任務1從QueueOne和Task2消耗從QueueTwo消耗。
現在的問題是,當Task1和2運行時,它們也會排空QueueFirehose,並且TaskFirehose任務不會執行。
我的配置有問題嗎?還是我誤解了一些東西?
CELERY_QUEUES = {
"QueueOne": {
"exchange_type": "topic",
"binding_key": "pipeline.one",
},
"QueueTwo": {
"exchange_type": "topic",
"binding_key": "pipeline.two",
},
"QueueFirehose": {
"exchange_type": "topic",
"binding_key": "pipeline.#",
},
}
CELERY_ROUTES = {
"tasks.task1": {
"queue": 'QueueOne',
"routing_key": 'pipeline.one',
},
"tasks.task2": {
"queue": 'QueueTwo',
"routing_key": 'pipeline.two',
},
"tasks.firehose": {
'queue': 'QueueFirehose',
"routing_key": 'pipeline.#',
},
}
也許這只是術語來澄清,但你的描述聽起來像你混淆任務和工人。例如,你說「Task2發送到隊列2」,然後再說「Task2從隊列2消耗」。任務不消耗;他們被消耗(由工人)。你也可以說「TaskFirehose任務永遠不會執行」,但在你的描述中,沒有TaskFirehose被髮送到任何隊列。基本概念是:任務被髮送到隊列;並且工作人員從他們分配的隊列執行任務。任務!=執行它們的工作人員。 – 2013-08-25 17:26:13