django - 在 django 中重启 celery 和 celery beat schedule 关系
问题描述
重新启动芹菜会导致所有周期性任务(芹菜节拍时间表)重置并从重新启动芹菜时开始,还是保留时间表?
例如,假设我有一个定期任务,每天下午 12 点执行。现在我在下午 3 点重新启动 celery。定期任务是否会重置为每天下午 3 点运行?
解决方案
你如何设置你的任务?
这里有很多设置任务计划的方法 →</p>
- 示例:每 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 运行。
您可以查看时间表示例
所以答案取决于你的代码。
推荐阅读
- angular - Angular 10 Formly + 材质垂直多选框
- laravel - 附加多态关系?
- javascript - jQuery / Javascript总和按预期计算
- javascript - 调用堆栈超出快速排序功能
- r - 通过使用 dplyr 添加前缀重命名除 id 列之外的所有列
- python - 在 Python 这样的编程语言和 Tensorflow 这样的平台中,“API”是什么意思?
- flutter - Flutter: chopper_generator >=3.0.4 与 moor_generator ^4.1.0 不兼容,如何解决?
- python - 写入同一视频后,视频的 NumPy 数组从原始数组发生变化
- android - 无法更改 Lifetime(time_to_live) firebase 推送通知
- python - slurm 集群上的 TensorFlow 2 仅检测到 1 个 CPU