在django中重新启动celery和celery beat schedule关系

Restarting celery and celery beat schedule relationship in django

重启celery是否会导致所有周期性任务(celery beat schedules)重置并从celery重启时开始,或者它是否保留时间表?

例如,假设我有一个每天中午 12 点执行的周期性任务。现在我在下午 3 点重新启动芹菜。周期任务会重置为每天下午3点运行吗?

你是如何设置任务的?

这里many ways设置任务时间表→

  • Example: 运行 每 30 秒执行一次 tasks.add 任务。
app.conf.beat_schedule = {
    'add-every-30-seconds': {
        'task': 'tasks.add',
        'schedule': 30.0,
        'args': (16, 16)
    },
}
app.conf.timezone = 'UTC'

此任务在开始后每 30 秒 运行。

  • 另一个例子:
from celery.schedules import crontab

app.conf.beat_schedule = {
    # Executes every Monday morning at 7:30 a.m.
    'add-every-monday-morning': {
        'task': 'tasks.add',
        'schedule': crontab(hour=7, minute=30),
        'args': (16, 16),
    },
}

此任务每天 7:30 运行。

您可以检查schedule examples

所以答案取决于您的代码。