安装
pip install django-crontab
使用场景
定时去执行某些操作
使用
在settings.INSTALLED_APPS中添加应用:
INSTALLED_APPS = [
'django_crontab', # 定时任务
]
定时任务crontab的时间设置格式
* * * * *
分 时 天 月 周
示例:
- 每1分钟执行一次myCommand
* /1* * * * myCommand
- 每小时的第3和第15分钟执行
3,15 * * * * myCommand
- 在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * myCommand
- 每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand
- 每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand
设置定时任务
在settings中添加CRONJOBS,设置定时任务。
- 以下示例定时任务为:apps下–contents应用内–generate_static_index_html方法;
- 定时时间为:每隔一分钟运行一次;
- ">>"符:拼接定时任务运行结果保存路径
CRONJOBS = [
# 每1分钟生成一次, 定时任务的函数, 定时任务的日志地址(可以不写)
('*/1 * * * *', 'contents.crons.generate_static_index_html', '>> ' + os.path.join(os.path.dirname(BASE_DIR), 'logs/crontab.log')),
]
设置中文支持
在定时任务中,如果出现非英文字符,会出现字符异常错误
- 在settings中添加:
CRONTAB_COMMAND_PREFIX = 'LANG_ALL=zh_cn.UTF-8'
管理定时任务
- 添加定时任务到系统中,启动定时任务必须先执行改语句。
$ python manage.py crontab add
- 显示已激活的定时任务
$ python manage.py crontab show
- 移除定时任务
$ python manage.py crontab remove
注意:
当改变定时任务的时候,删除定时任务然后重新的添加上。
运行和django无关,依赖的是linux的crontab定时服务,因此无法在windowns下运行