task_routes = {'feed.tasks.import_feed': {'queue': 'feeds'}}
使用glob模式匹配,或正则,以匹配所有任务 feed.tasks(名称空间)
app.conf.task_routes = {'feed.tasks.*': {'queue': 'feeds'}}
匹配模式的顺序很重要时:(需要指定设置为包含列表的元组)
task_routes = ([
('feed.tasks.*': {'queue': 'feeds'}),
('web.tasks.*': {'queue': 'web'}),
(re.compile(r'(video|image)\.tasks\..*'), {'queue': 'media'}),
],)
$ celery -A proj worker -Q feeds
$ celery -A proj worker -Q feeds,celery
如果其他队列中,另一个交易要添加,只需指定一个自定义的exchange,和exchange type
from kombu import Exchange, Queue
app.conf.task_queues = (
Queue('feed_tasks', routing_key='feed.#'),
Queue('regular_tasks', routing_key='task.#'),
Queue('image_tasks', exchange=Exchange('mediatasks', type='direct'),
routing_key='image.compress'),
)
RabbitMQ的消息优先级
通过x-max-priority参数,配置队列
from kombu import Exchange, Queue
app.conf.task_queues = [
Queue('tasks', Exchange('tasks'), routing_key='tasks',
queue_arguments={'x-max-priority': 10},
]
默认:
app.conf.task_queue_max_priority = 10
exchanges , queues, routing_keys
1.消息被发送到exchanges
2.exchange 消息从路由到一个或多个queues。(一些exchange type(标准定义分:direct [通过精确的路由密钥匹配],topic [由键和通配符:*(一个单词匹配)和#(匹配零个或多个字)],headers,fanout)存在,提供不同的方式做路由routing_key,或实现不同的消息传递方案exchange)
3.消息在queues中等待,直到有人消耗它
4.当已经确认该消息,从queues中删除。
步骤:创建exchange ; 创建queues ; 绑定queues to exchange.
来自:http://docs.celeryproject.org/en/latest/userguide/routing.html
使用glob模式匹配,或正则,以匹配所有任务 feed.tasks(名称空间)
app.conf.task_routes = {'feed.tasks.*': {'queue': 'feeds'}}
匹配模式的顺序很重要时:(需要指定设置为包含列表的元组)
task_routes = ([
('feed.tasks.*': {'queue': 'feeds'}),
('web.tasks.*': {'queue': 'web'}),
(re.compile(r'(video|image)\.tasks\..*'), {'queue': 'media'}),
],)
$ celery -A proj worker -Q feeds
$ celery -A proj worker -Q feeds,celery
如果其他队列中,另一个交易要添加,只需指定一个自定义的exchange,和exchange type
from kombu import Exchange, Queue
app.conf.task_queues = (
Queue('feed_tasks', routing_key='feed.#'),
Queue('regular_tasks', routing_key='task.#'),
Queue('image_tasks', exchange=Exchange('mediatasks', type='direct'),
routing_key='image.compress'),
)
RabbitMQ的消息优先级
通过x-max-priority参数,配置队列
from kombu import Exchange, Queue
app.conf.task_queues = [
Queue('tasks', Exchange('tasks'), routing_key='tasks',
queue_arguments={'x-max-priority': 10},
]
默认:
app.conf.task_queue_max_priority = 10
exchanges , queues, routing_keys
1.消息被发送到exchanges
2.exchange 消息从路由到一个或多个queues。(一些exchange type(标准定义分:direct [通过精确的路由密钥匹配],topic [由键和通配符:*(一个单词匹配)和#(匹配零个或多个字)],headers,fanout)存在,提供不同的方式做路由routing_key,或实现不同的消息传递方案exchange)
3.消息在queues中等待,直到有人消耗它
4.当已经确认该消息,从queues中删除。
步骤:创建exchange ; 创建queues ; 绑定queues to exchange.
来自:http://docs.celeryproject.org/en/latest/userguide/routing.html