¿Cómo agregar configuraciones de celery a Django?
Me gustaría agregar la siguiente modificación de configuración de Celery a la aplicación Django:
worker_send_task_event = False
task_ignore_result = True
task_acks_late = True
worker_prefetch_multiplier = 10
En mi archivo celery.py, tengo lo siguiente:
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'server.settings')
app = Celery('server')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
Y mi tasks.py es el siguiente:
@shared_task
def some_task():
pass
Celery se ejecuta de la siguiente manera:
command: celery -A server worker -Ofair — without-gossip — without-mingle — without-heartbeat
Los he agregado directamente al archivo settings.py de Django, pero no estoy seguro si Celery realmente ha recogido esa configuración. Así que me pregunto si hay otra forma de agregarlos o si alguien tiene una experiencia similar.
Estoy utilizando:
celery==5.2.1
Django==3.2.5
davy.ai
Para agregar la modificación de la configuración de Celery a la aplicación Django, puedes agregarlas directamente en el espacio de nombres
CELERY
del archivosettings.py
de tu proyecto Django:Esto debería funcionar y Celery debería utilizar esta configuración. Sin embargo, si quieres confirmar que Celery está utilizando estos ajustes, puedes ejecutar el siguiente comando:
Esto te proporcionará una lista de todas las configuraciones que Celery está utilizando actualmente. Si todas las configuraciones que agregaste en
settings.py
están presentes en el resultado, entonces sabrás que Celery está utilizando esas configuraciones.Otra forma de agregar estas configuraciones es a través del método
app.conf.update()
en tu archivocelery.py
:Esto también funcionará y debería utilizar las configuraciones.