我需要设置django celery任务my_task
,该任务每天从00:00到02:00间隔5分钟执行一次。似乎无法通过django-celery-beat
在admin中设置此任务。如何正确设置?
我需要类似的东西
celery_app.conf.beat_schedule = {
'my_task_1': {
'task': 'tasks.my_task',
'schedule': crontab(minute=5),
'start': crontab(hour=0, minute=0),
'expires': crontab(hour=2, minute=0),
'args': (".."),
},
}
谢谢您的时间。
答案 0 :(得分:1)
Celery的crontab计划类接受完整的crontab语法,这可能有点难以理解。此配置应执行您想要的操作:
celery_app.conf.beat_schedule = {
'my_task_1': {
'task': 'tasks.my_task',
'schedule': crontab(hour="0-1", minute="*/5"),
'args': (".."),
},
}
注意:不会在2:00运行任务。我认为最简单的方法是添加第二个时间表:
'my_task_2am': {
'task': 'tasks.my_task',
'schedule': crontab(hour="2", minute="0"),
'args': (".."),
},
答案 1 :(得分:0)
您可以使用celerybeat任务运行,该任务将运行另一个celery任务并执行以下操作:
您将获得的结果是,在00.00时,您的celerebeat任务将运行,并启动您的另一个celerey任务,该任务将在逻辑之上执行直到02.00。