图/文:迷神
我们做django的项目开发的时候,也需要实现一些类似 Linux 中crontab 的功能,定时执行计划任务。虽然使用linux ,自带了crontab实现,但是毕竟是django 开发。想着不知道有没有方法可以从django 中实现。
实现方法其实有很多,但是,简单需求, django-crontab 实现就够了
安装django-crontab
github : https://github.com/kraiz/django-crontab
安装其实很简单,常规操作 pip install
pip install django-crontab
setting添加配置
主要添加 CRONJOBS = () ,计划任务时间格式和linux一样
INSTALLED_APPS = ( .... #略 'workcorn', 'django_crontab', #添加此行)# 在settings.py中添加以下框架及相应内容:CRONJOBS=( # 按照需求时间执行一次你的定时函数 ('*/5 * * * *', 'work.cron.update_login'), ('2 */5 * * *', 'work.cron.update_key_status'), ('11 2 * * *', 'work.cron.run_leave'), #其他调用实例: # 定时函数输出的内容到指定文件(如果该路径或文件不存在将会自动创建) #('0 0 1 * *', 'app名.定时函数所在文件名.定时函数名', '>输出文件路径和名称'),)
在app中(与views.py同级)新建cron.py文件,添加一些功能:
django-crontab的操作命令
python3 manage.py crontab add 添加定时任务python3 manage.py crontab remove 清除定时任务python3 manage.py crontab show 显示定时任务
其实,说到底,只是django-crontab插件对linux底层的调用。系统下的计划任务,可以这样查看:
# crontab -l
django-crontab都写进去了。大家可以多做尝试,看下github上的文档,对理解使用还是非常的有帮助。
有问题欢迎留言,觉得不错,记得关注一波哦,后续更多内容迷神会继续分享的。