1. 安装
pip install django-crontab
2. 添加app
在 settings.py 文件中添加 django-crontab:
INSTALLED_APPS = (
...
'django_crontab',
)
3. 配置
CRONJOBS = [ # 定时函数每分钟执行一次 ('*/1 * * * *', '你的app名.定时函数所在的py文件名.定时函数名'), # 将定时函数执行结果输出到指定文件(如果该路径或文件不存在将会自动创建) ('*/1 * * * *', '你的app名.定时函数所在的py文件名.定时函数名', '>> 输出文件路径和名称') ]
例如: CRONJOBS = [ # 定时函数每分钟执行一次 ("*/1 * * * *", "app.views.check", ">>/home/test.log"), ("*/1 * * * *", "app.views.check_connect", ">>/home/target_test.log"), ("*/1 * * * *", "app.views.connect", ">>/home/soft_test.log") ] os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings")# project_name 项目名称 要并写正确 django.setup()
4. 操作命令
查看系統中已有的定时任务:python manage.py crontab show 添加和修改定时任务:python manage.py crontab add # 每次CRONJOBS中的任务发生变化时,都要执行一遍该命令。 删除定时任务:python manage.py crontab remove # run 是立刻运行这个定时任务 # linux 查看当前用户 定时任务,编辑 crontab -e
列出目前的crontab
crontab -l
注意:django_crontab一定要注册在应用名之前
#django中单次手动执行定时任务
python manage.py crontab run <tash_hash_id>
django-crontab不支持windows和mac系统;在windows上执行会报错
‘>>/home/test.log’,通常会输出信息到一个文件中,就使用这个方法,注意的是‘>>’表示追加写入,’>’表示覆盖写入。
crontab -e 查看crond服务状态: #查看状态 service crond status #开启服务 service crond start #关闭服务 service crond stop #重启服务 service crond restart
crontab -l 当前任务存在,但是不生效:
手动启动crontab服务: find / -name crond /usr/sbin/crond start
报错:sh: /usr/bin/crontab: No such file or directory
yum -y install crontabs
crond服务
安装crontab:
yum install crontabs