Comment puis-je planifier une Tâche à exécuter à un moment précis à l'aide de céleri?
J'ai regardé dans PeriodicTask, mais les exemples ne couvrent que faire il se reproduise. Je suis à la recherche de quelque chose de plus comme cronla capacité de dire "exécuter cette tâche, chaque lundi à 1 h du matin"
La publication récente de la version 1.0.3 prend en charge à présent, grâce à Patrick Altman!
Exemple:
from celery.task.schedules import crontab
from celery.decorators import periodic_task
@periodic_task(run_every=crontab(hour=7, minute=30, day_of_week="mon"))def every_monday_morning():print("This runs every Monday morning at 7:30a.m.")
L'importation chemins d'accès ont été modifiés pour from celery.task import periodic_task et from celery.schedules import crontab Ils ont enlevé le décorateur github.com/celery/celery/issues/1764
J'ai juste soumis un patch pour ajouter un ScheduledTask pour accomplir un petit peu de temps en fonction de l'ordonnancement rapport à la période de base:
Comment vous pouvez le lire dans ce tutoriel, vous pouvez faire un PeriodicTask, je pense que si vous devez exécuter une tâche à 1 .am. Lundi matin, c'est parce que vous wan pour exécuter une longue cpu/mem opération, rememeber céleri utiliser toujours déléguée pour mettre en file d'attente des tâches.
La publication récente de la version 1.0.3 prend en charge à présent, grâce à Patrick Altman!
Exemple:
Voir le changelog pour plus d'informations:
http://celeryproject.org/docs/changelog.html
from celery.task import periodic_task
etfrom celery.schedules import crontab
Ils ont enlevé le décorateur github.com/celery/celery/issues/1764
OriginalL'auteur asksol
Utilisation
Et à la fin de votre tâche, de le remettre à la prochaine fois, il devrait fonctionner.
Si je fais un
PeriodicTask
, j'ai seulement besoin de planifier la première fois, non?OriginalL'auteur nosklo
J'ai juste soumis un patch pour ajouter un ScheduledTask pour accomplir un petit peu de temps en fonction de l'ordonnancement rapport à la période de base:
https://github.com/celery/celery/commit/e8835f1052bb45a73f9404005c666f2d2b9a9228
OriginalL'auteur Patrick Altman
Comment vous pouvez le lire dans ce tutoriel, vous pouvez faire un PeriodicTask, je pense que si vous devez exécuter une tâche à 1 .am. Lundi matin, c'est parce que vous wan pour exécuter une longue cpu/mem opération, rememeber céleri utiliser toujours déléguée pour mettre en file d'attente des tâches.
OriginalL'auteur diegueus9
Tandis que @asksol la réponse tient toujours, l'api a été mis à jour. Pour le céleri 4.1.0, j'ai importer
crontab
etperiodic_task
comme suit:OriginalL'auteur Psidom