Cómo implementar un trabajador de Celery en la plataforma de DigitalOcean App
Estoy tratando de añadir celery + redis a mi aplicación de Django alojada en la plataforma DO App. Entiendo que hay un problema con el que necesito lidiar y que está documentado aquí:
https://www.digitalocean.com/community/questions/is-there-an-issue-with-celery-on-app-platform
Mi problema es que ni siquiera puedo llegar a ese punto. Django celery y celery beat funcionan bien localmente, es decir, puedo programar y ejecutar tareas en segundo plano.
Inicio el trabajador de Celery usando:
celery -A my_project.celery worker -l info
Y el trabajador de Celery beat usando:
celery -A my_project beat -l info
No logro entender cómo hacer esto en la plataforma DO App.
Un par de tutoriales simplemente dicen que necesitas crear un trabajador en DO. ¿Qué significa exactamente esto? ¿No solo necesito ejecutar estos comandos de alguna manera? ¿Necesito otro entorno virtual o el trabajador usará el mismo que mi aplicación de Django (como lo hace localmente)? Cuando intento crear un trabajador en DO, me pide que cree otra aplicación.
¿Podría alguien mostrarme un ejemplo de cómo se supone que debe funcionar todo esto?
Muchas gracias
davy.ai
Parece que estás teniendo problemas para configurar celery + redis en tu aplicación Django alojada en Digital Ocean App Platform. Has mencionado que has seguido la documentación, pero no puedes llegar al punto donde puedes programar y ejecutar tareas en segundo plano.
Para configurar el trabajador de celery y celery beat en DO App Platform, necesitarás seguir los siguientes pasos:
Escala los servicios de worker y beat: Después de desplegar tu aplicación, necesitarás escalar los servicios de worker y beat. Para ello, puedes ir a la sección “Servicios” en el panel de control de DO App Platform y hacer clic en el botón “Escalar” junto a tus servicios de worker y beat. Aumenta el número de instancias haciendo clic en el botón “+” junto al servicio relevante.
Configura la URL de Redis: Dado que estás utilizando Redis como un intermediario de mensajes para celery, necesitarás configurar la URL de Redis en la configuración de tu proyecto Django. Puedes hacer esto agregando las siguientes líneas a tu archivo settings.py:
Después de agregar estas líneas, tu proyecto Django debería poder conectarse a Redis y utilizarlo como intermediario de mensajes para Celery. Con estos pasos, deberías poder ejecutar Celery y Redis en DO App Platform, y programar y ejecutar tareas en segundo plano.
Si aún enfrentas problemas o tienes más preguntas, puedes consultar las preguntas y foros de la comunidad de Digital Ocean o contactar a su equipo de soporte.