我想調用一個任務,併爲該任務創建一個隊列,如果它不存在,那麼立即插入到該隊列的被調用任務。我有以下代碼:芹菜動態隊列創建和路由
@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