tutorial tasks results interval espaƱol conf beat_schedule beat app django rabbitmq celery django-celery

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 .