官方文档:http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#beat-custom-schedulers
1. 准备
使用pip安装django-celery-beat库
pip install django-celery-beat
django项目的settings.py中添加django_celery_beat到INSTALLED_APPS
INSTALLED_APPS = [
...,
'django_celery_beat',
]
创建表
python manage.py migrate
启动Celery beat服务
celery -A proj beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler
访问Django 后台设置定时任务
需要先创建Django用户,输入命令并根据提示创建
python manage.py createsuperuser
2. 使用
访问admin页面 http://yourip:8888/admin/得到如下界面
登录后
定时任务相关的内容在PERIODIC TASKS部分
其中Periodic tasks为任务设置,Crontabs,Intervals,Solar events均为调度时间的设置,与任务无关,任务设置时需要使用。
Crontabs:跟linux系统的crontab一样(分,时,月,年,周几)
Intervals:周期性(每多少 [ 日 | 时 | 分 | 秒 | 毫秒 ])
Solar events:跟太阳活动相关,不常用,通过设置经纬度和太阳活动(日出日落等)来触发
每项都可以通过点击+Add或点击进入列表中添加,也可以在设置任务时直接添加。
添加一项任务
点击Periodic tasks的+Add,出现如下界面
输入定时任务名字,点击下拉列表即能看到之前的add任务
调度方式可选其中一种,这里设置每30秒执行一次,选择Interval后的+添加调度时间,设置为每30秒保存
设置参数,点击Arguments显示参数设置,依旧设置参数为(2, 5)
保存,定时任务添加完成
worker窗口和beat窗口可看到每30秒执行一次任务
删除定时任务
选中任务后可选择删除或者禁止任务