es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  ,

Answer

  1. Avatar for 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í:

    task1.apply_async(queue='celery')
    task2.apply_async(queue='default')
    long_task.apply_async(queue='long')
    

    Esto enviará task1 a la cola celery, task2 a la cola default y long_task a la cola long, como se especifica en la configuración CELERY_ROUTES en settings.py.

Comments are closed.