J'ai une tâche de céleri et j'en ai besoin pour courir seulement les cinq prochains jours à 12h30. Comment puis-je faire cela en utilisant céleri-beat. Je sais comment l'exécuter périodiquement pour toujours mais pas capable de comprendre pour les cinq prochains jours Une idée?Céleri exécuter la tâche périodiquement seulement les 5 prochains jours
Répondre
Jetez un oeil à la docs céleri-beat pour crontab. Bien que ce soit littéralement une chose une fois, alors par définition, ce n'est pas exactement périodique. Vous pouvez configurer une tâche périodique crontab à 12h30 pour les 5 prochains jours, mais vous devez également vous rappeler de l'éteindre manuellement.
Si vous allez dans cette voie
from celery.schedules import crontab
CELERYBEAT_SCHEDULE = {
'add-at-midnightish': {
'task': 'tasks.add',
'schedule': crontab(hour=0, minute=30,),
'args': (16, 16),
},
}
Alternativement, vous pouvez utiliser le mot-clé eta
sur apply_async
comme mentionné dans le celery faq
D'accord, mais je n'ai pas besoin de le désactiver manuellement. Y at-il un moyen de l'éteindre automatiquement après cinq jours. – Sandeep
avez-vous eu de la chance avec ça? –