トピック交換をセットアップするために構成がどのように見えるべきかについて、少し混乱しています。
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
Task1 が 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.#',
},
}