django使用django-crontab实现定时任务
时间:2022-07-25
本文章向大家介绍django使用django-crontab实现定时任务,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在做一个django项目的时候,我遇到了一个定时任务的需求,我这里是需要定时扫描数据库并发送邮件,在查阅相关资料后,总结出如下几个方法
- 使用while创建一个死循环,判断时间,从而执行一些函数
- 使用APScheduler库实现定时任务 (详情可以见http://blog.csdn.net/hui3909/article/details/46652623)
- django-crontab实现定时任务
- django-celery实现定时任务
django-crontab实现定时任务
在我斟酌再三,最终还是选择了django-crontab这个方法,这个方法最契合我的需求,同时也相对简单,所以本文也就着重介绍一下
django-crontab安装
安装django-crontab库
这里使用pip安装即可,在终端输入以下命令即可
pip install django-crontab
在工程里使用django-crontab
在django项目的settings.py的INSTALLED_APPS添加django-crontab
django-crontab配置
django-crontab可以定时运行自定义命令和函数两种方式
定时函数
在django项目的settings.py中添加以下命令
CRONJOBS = (
('*/1 * * * *', '你的app名.定时函数所在的py文件名.定时函数名'),
('0 0 1 * *', '你的app名.定时函数所在的py文件名.定时函数名', '> 输出文件路径和名称'),
)
- 第一种的意思就是每一分钟执行一次你的定时函数
- 第二种时定时函数输出的内容到指定文件(如果该路径或文件不存在将会自动创建)
定时命令
CRONJOBS = (
('10 12 * * *', 'django.core.management.call_command', ['要执行的命令']),
)
- 意思是在12点10分执行命令
定时任务的操作
- python manage.py crontab add 添加定时任务
- python manage.py crontab remove 清除定时任务
- python manage.py crontab show 显示定时任务
- 当你添加了或者修改的定时任务,只需执行命令1即可
- 如果你想删除定时任务,请执行命令2
注:
- 当定时任务执行时,如果你只是一些输出语句,那么你将看不到任何内容。请不要怀疑没有执行
- 上述环境在ubuntu16.04 lts django1.9中测试成功
- 上述文字皆为个人看法,如有错误或建议请及时联系我
- DeDeCMS v5.7 密码修改漏洞分析
- Java基础-20(01)总结,递归,IO流
- 一个Oracle bug的手工修复(r6笔记第59天)
- 由drop datafile导致的oracle bug(r6笔记第56天)
- Java中static关键字的作用
- Java基础-20(02)总结,递归,IO流
- Hive四种数据导入方式
- 34c3 部分Web Writeup
- 原来Oracle也不喜欢“蜀黍"(r6笔记第54天)
- Java基础19(01)总结IO流,异常try…catch,throws,File类
- 使用shell生成orabbix自动化配置脚本(r6笔记第53天)
- 现在 tensorflow 和 mxnet 很火,是否还有必要学习 scikit-learn 等框架?
- 数据的标准化与中心化以及R语言中的scale详解
- Java基础19(02)总结IO流,异常try…catch,throws,File类
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CentOS7 LNMP+phpmyadmin环境搭建 第一篇虚拟机及centos7安装
- flutter 输入框组件TextField的实现代码
- Mac通过不同终端SSH连接远程服务器的讲解
- Linux关于透明大页的使用与禁用介绍
- linux中使用grep命令详解
- linux下使用cmake编译安装mysql的详细教程
- Linux CentOS 7.0中java安装与配置环境变量的步骤详解
- Linux下进程数量的限制pid_max的配置方法
- linux 进程数最大值修改方法
- Linux通过设备号找到设备的方法
- linux环境下安装 openOffice 并启动服务 的方法
- Linux下如何查杀stopped进程详解
- Linux文件服务器实战详解(匿名用户)
- ubuntu16.0.4 设置固定ip地址的方法
- Linux文件服务器实战详解(虚拟用户)