我在Celery中有一些与Celery Beat / Crontab一起安排的任务,如下所示:
CELERYBEAT_SCHEDULE = {
'task-1': {
'task': 'tasks.run_task1',
'schedule': crontab(hour=5, minute=30, day_of_week='mon-fri'),
},
'task-2': {
'task': 'tasks.run_task2',
'schedule': crontab(hour=12, minute=0, day_of_week='sun-fri'),
},
}
有时我关闭了Celery进程,当我在下午4点将其重新打开时,它将在当天早些时候运行任务。我怎样才能使这些任务只在实际安排的约5分钟内运行而不是在当天晚些时候开始运行?
答案 0 :(得分:1)
使用expires选项:
CELERYBEAT_SCHEDULE = {
'task-1': {
'task': 'tasks.run_task1',
'schedule': crontab(hour=5, minute=30, day_of_week='mon-fri'),
'options': {
'expires': 5*60,
},
},
'task-2': {
'task': 'tasks.run_task2',
'schedule': crontab(hour=12, minute=0, day_of_week='sun-fri'),
'options': {
'expires': 5*60,
},
},
}