安排 Django Celery 定期任务从某个时间运行到另一个时间
Posted
技术标签:
【中文标题】安排 Django Celery 定期任务从某个时间运行到另一个时间【英文标题】:Schedule Django Celery periodic tasks to run from time to other time 【发布时间】:2017-09-25 21:47:53 【问题描述】:我如何才能完成运行 Django Celery 任务,使其仅在周一至周五运行,并且在那些日子仅从美国东部标准时间上午 9 点到下午 5 点运行?
celery.py
from celery.schedule import crontab
app.conf.beat_schedule =
'compute-every-5-seconds':
'task': 'sum',
'schedule': crontab(),
,
我应该向 crontab() 添加哪些参数以使其在那些日子和仅在这些时间之间运行?
【问题讨论】:
【参考方案1】:celery.py
from celery.schedule import crontab
app.conf.beat_schedule =
'compute-every-minute-mon-through-friday-9-to-5':
'task': 'sum',
'schedule': crontab(minute='*/1',
hour='9-17', day_of_week='mon,tue,wed,thu,fri'),
,
minute='*/1'
- 每分钟运行一次
hour='9-17'
- 上午 9 点到下午 5 点运行
day_of_week='mon,tue,wed,thu,fri'
- 周一至周五
其中大部分都可以在documentation 页面上找到,请查看!
【讨论】:
以上是关于安排 Django Celery 定期任务从某个时间运行到另一个时间的主要内容,如果未能解决你的问题,请参考以下文章
Django 1.9 + celery + django-celry 实现定时任务
在使用 django_celery_beat 设置的 Django 视图中使用 Celery 定期任务输出,并使用 Redis 设置缓存