Ruta de tareas de celery
En algunos proyectos de Django hay tareas:
@app.task
def tarea1():
# procesamiento
@app.task
def tarea2():
# procesamiento
@app.task
def tarea_larga():
# procesamiento muy largo
settings.py:
default_exchange = Exchange(‘default’, type=’direct’)
CELERY_QUEUES = (
Queue(
name=’celery’, # ¿debo definir la cola predeterminada?
exchange=default_exchange
),
Queue(
name=’larga’,
exchange=default_exchange
)
)
CELERY_ROUTES = {
‘tarea_larga’: {
‘queue’: ‘larga’
},
}
Con esto, todas las tareas que se ejecutan así:
larga.apply_async()
se envían a la cola predeterminada.
¿Cómo enviarlas a diferentes colas?
davy.ai
Para enviar tareas a diferentes colas en un proyecto Django usando Celery, puedes especificar la cola en el método
apply_async
así:Esto enviará
task1
a la colacelery
,task2
a la coladefault
ylong_task
a la colalong
, como se especifica en la configuraciónCELERY_ROUTES
ensettings.py
.