作者:与蟒唯舞
链接:https://www.jianshu.com/p/e4a8f173b4b0
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
实现Django
定时任务的方法(插件)很多,复杂却功能完备的有: Django-celery
。
但今天我们使用Django-crontab
,选择它的原因在于配置简单,使用方便。
废话不多说,使用步骤:
-
安装配置
pip install django-crontab
再在settings.py中添加app:
INSTALLED_APPS = ( ... 'django_crontab', )
如果最后提示缺少什么模块,就自行pip安装。
-
创建定时任务
在app内新建py文件,文件名称随意。
例如我们在名为blog的app下新建了一个core.py
文件。
内容:项目名称/blog/core.py def task(): #要执行的任务函数
然后在 settings.py中增加:
最简单配置CRONJOBS = [ # 表示每天2:01执行 ('01 2 * * *', 'blog.core.task') ] 第一个参数(表示时间): 前5个字段分别表示: • 分钟:0-59 • 小时:1-23 • 日期:1-31 • 月份:1-12 • 星期:0-6(0表示周日) 一些特殊符号: *: 表示任何时刻 ,: 表示分割 -:表示一个段,如第二端里: 1-5,就表示1到5点 /n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1. 第二个参数(表示路径): 格式:app名称/文件名/函数名 如果想生成日志,那就再加一个字符串类型的参数:'>> path/name.log', path路径,name文件名。'>>'表示追加写入,'>'表示覆盖写入。 提示:如果你有多个定时任务,以逗号隔开,都放入CORJOBS中即可。
-
启动任务
以上都完成后,需要执行
python manage.py crontab add
将任务添加并生效
显示当前的定时任务python manage.py crontab show
删除所有定时任务
python manage.py crontab remove
重启django服务
执行(可能不需要,因为自己并没有用,也正常使用了。)python manage.py corntab -e
-
问题
4.1 Django低级版本可以使用吗? 答:版本太低请安装0.6.0版本 pip install django-crontab==0.6.0 4.2 支持Windows吗? 答:不支持 4.3 使用add命令时,遇到"bad command"/"errors in cronfile"报错。 答:第一个参数错误,请仔细检查。