我想调用一个任务,并为该任务创建一个队列,如果它不存在,那么立即插入到该队列的被调用任务。我有以下代码:芹菜动态队列创建和路由
@task
def greet(name):
return "Hello %s!" % name
def run():
result = greet.delay(args=['marc'], queue='greet.1',
routing_key='greet.1')
print result.ready()
然后我有一个自定义路由器:
class MyRouter(object):
def route_for_task(self, task, args=None, kwargs=None):
if task == 'tasks.greet':
return {'queue': kwargs['queue'],
'exchange': 'greet',
'exchange_type': 'direct',
'routing_key': kwargs['routing_key']}
return None
这将创建一个名为交流和greet.1
排队叫greet.1
但队列为空。交换机应该叫做greet
,该交换机知道如何将路由密钥(如greet.1
)路由到名为greet.1
的队列。
任何想法?
我不再担心手动创建队列打开该问题,而不是只产生一个新的工作自动创建队列和交换这使得更多的意义我的问题。一如既往,感谢您的回复。 :) – Marconi 2012-08-18 06:38:17