Criação e roteamento de filas dinâmicas de aipo
Estou tentando chamar uma tarefa e criar uma fila para essa tarefa se ela não existir e, em seguida, inserir imediatamente nessa fila a tarefa chamada. Eu tenho o seguinte código:
@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()
então eu tenho um roteador personalizado:
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
isso cria uma troca chamadagreet.1
e uma fila chamadagreet.1
mas a fila está vazia. A troca deve ser apenas chamadagreet
que sabe como rotear uma chave de roteamento comogreet.1
para a fila chamadagreet.1
.
Alguma ideia?