我正在尝试调用一个任务并为该任务创建一个队列,如果它不存在,然后立即将调用的任务插入该队列。我有以下代码:
@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
。
有任何想法吗?