python - run - ¿Cómo puedo ejecutar una tarea periódica de apio desde el caparazón manualmente?
django-celery-results (2)
Estoy usando apio y django-apio. Definí una tarea periódica que me gustaría probar. ¿Es posible ejecutar la tarea periódica del intérprete de comandos manualmente para que vea la salida de la consola?
¿Has intentado ejecutar la tarea desde el caparazón de Django? Puede usar el método .apply
de una tarea para asegurarse de que se ejecute de forma entusiasta y local.
Suponiendo que la tarea se llama my_task
en la aplicación Django myapp
en un submódulo de tasks
:
$ python manage.py shell
>>> from myapp.tasks import my_task
>>> eager_result = my_task.apply()
La instancia de resultado tiene la misma API que el tipo habitual de AsyncResult
, excepto que el resultado siempre se evalúa de forma entusiasta y local, y el método .apply()
se bloqueará hasta que la tarea se ejecute hasta su finalización.
Creo que deberás abrir dos shells: uno para ejecutar tareas desde el shell de Python / Django, y otro para ejecutar el celery worker
( python manage.py celery worker
). Y como decía la respuesta anterior, puedes ejecutar tareas usando apply()
o apply_async()
He editado la respuesta para que no uses un comando en desuso.