Estoy tratando de llamar a una tarea y crear una cola para esa tarea si no existe, luego inserte inmediatamente en esa cola la tarea llamada. Tengo el siguiente código:Enrutamiento y creación de colas dinámicas de apio
@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()
entonces tengo un router 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
esto crea un intercambio llamado greet.1
y una cola llamada greet.1
pero la cola está vacía. El intercambio debe llamarse greet
que sabe cómo enrutar una clave de enrutamiento como greet.1
a la cola llamada greet.1
.
¿Alguna idea?
Dejé de preocuparme por crear cola manualmente, en lugar de generar un nuevo trabajador que creara la cola e intercambiara automáticamente lo que tenía más sentido para mi problema. Como siempre, gracias por la respuesta. :) – Marconi