tasks - django celery results
Ejemplos de Django y apio: tareas periĆ³dicas (1)
He estado luchando contra la documentación de Django / Celery por un tiempo y necesito ayuda.
Me gustaría poder ejecutar tareas periódicas utilizando django-celery. He visto en Internet (y en la documentación) varios formatos y esquemas diferentes sobre cómo se debe lograr esto utilizando Celery ...
¿Puede alguien ayudar con un ejemplo básico y funcional de creación, registro y ejecución de una tarea periódica de django-celery? En particular, quiero saber si debo escribir una tarea que extienda la clase PeriodicTask y registrarlo, o si debo usar el decorador @periodic_task, o si debo usar el decorador @task y luego configurar un programa para la tarea ejecución.
No me importa si las tres formas son posibles, pero me gustaría ver un ejemplo de al menos una manera que funcione. Realmente aprecio tu ayuda.
¿Qué hay de malo en el ejemplo de la documentación ?
from celery.task import PeriodicTask
from clickmuncher.messaging import process_clicks
from datetime import timedelta
class ProcessClicksTask(PeriodicTask):
run_every = timedelta(minutes=30)
def run(self, **kwargs):
process_clicks()
Puedes escribir la misma tarea usando un decorador:
from celery.task.schedules import crontab
from celery.task import periodic_task
@periodic_task(run_every=crontab(minute="*/30"))
def process_clicks():
....
La sintaxis del decorador simplemente le permite convertir una función / tarea existente en una tarea periódica sin modificarlos directamente.
Para que se ejecuten las tareas celerybeat debe estar en ejecución .