如何防止 Celery 周期性任务延迟执行?

Pau*_*est 5 python celery celerybeat

我在 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'),
    },
}
Run Code Online (Sandbox Code Playgroud)

有时我关闭了 Celery 进程,当我在下午 4:00 重新打开它时,它将运行当天早些时候的任务。我怎样才能让这些任务只在实际安排的大约 5 分钟内运行,而不是在当天晚些时候开始运行?

noa*_*amk 4

使用过期选项:

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,
                    },
    },
}
Run Code Online (Sandbox Code Playgroud)