1 在Django 项目中添加定时任务
Django 的crontab的定时任务实现底层依然依赖于Linux系统的crontab任务,通过crontab模块将自己的定时任务写入crontab里,让系统去执行
安装crontab模块 pip install Django-crontab
在setting.py中添加模块和定时任务
INSTALLED_APPS = [‘django_crontab’]
CRONJOBS = [(‘0 */1 * * *’, ‘app_name.file.py.function_name’)]
3. 将定时任务添加到crontab 文件中
python manage.py crontab add
crontab -e 打开定时任务是否被添加到系统里,如果存在,即添加成功,反之失败,还可以通过
python manage.py crontab show 查看
删除定时任务 python manage.py delete, 也可通过crontab -e在文件中直接删除
好了 ,结束,你以为真的结束了?
将系统中crontab文件中的新家定时任务单拉出来执行,你会发现会有如下错误:
No handlers cloud be found for logger “django_crontab.crontab”
是的没有logger配置,可是代码本身没有用到logger的地方啊,不错,你可以不用,但是这个配置必须有,就是这么任性
好吧,在setting里继续加logger配置。
LOGGING = {
‘version’: 1,
‘disable_existing_loggers’: False,
‘formatters’: {
‘verbose’: {
‘format’: “%(asctime)s %(levelname)s %(message)s”,
‘datefmt’: “%a, %d %b %Y %H:%M:%S”
},
},
‘handlers’: {
‘django_crontab’: {
‘level’: ‘DEBUG’,
‘class’: ‘logging.FileHandler’,
‘filename’: ‘django_crontab.log’,
‘formatter’: ‘verbose’
},
},
‘loggers’: {
‘django_crontab.crontab’: {
‘handlers’: [‘django_crontab’],
‘level’: ‘DEBUG’,
‘propagate’: True,
},
}
}
这些都是默认配置,可以根据自己的需求进行更改
好了,这下是真完了