在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
所以答案取决于您的代码。
重启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
所以答案取决于您的代码。