我理解AMQP的消息只有以下几个组成部分:
在Celery中,推荐路由任务的方法是通过
- 消息正文
- 路由键
- 交换机
在Celery中,推荐路由任务的方法是通过
CELERY_ROUTES
设置。根据文档,CELERY_ROUTES
是...
它包括一个示例...用于将任务路由到队列的路由器列表或单个路由器。 http://celery.readthedocs.org/en/latest/configuration.html#message-routing
要将任务路由到 feed_tasks 队列,可以在
CELERY_ROUTES
设置中添加一个条目:但是等一下——根据AMQP,消息仅带有路由键!那么“队列”到底是做什么用的呢?
CELERY_ROUTES = { 'feeds.tasks.import_feed': { 'queue': 'feed_tasks', 'routing_key': 'feed.import', }, }
此外,还有一个默认队列的概念。如果你调用了一个没有被CELERY_ROUTES
捕捉到的任务,它会回退到CELERY_DEFAULT_QUEUE
。但同样地,按照AMQP的规定,消息并不知道队列的存在。那这不应该是默认的路由键吗?