【发布时间】:2012-08-09 11:52:17
【问题描述】:
我正在尝试调用一个任务并为该任务创建一个队列,如果它不存在,然后立即将调用的任务插入该队列。我有以下代码:
@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 的队列。
有什么想法吗?
【问题讨论】: