django-crontab 定时执行任务方法的实现


Posted in Python onSeptember 06, 2019

需求

每天请求一封邮件,并读取该邮件

这个其实可以使用linux 自带了crontab实现,但是毕竟是django 开发。想着不知道有没有方法可以从django 中实现。

简单搜索了下,这方面的方法确实不少。

由于看到celery 插件学习曲线较大,这个小的需求就使用django-crontab 解决。

安装

pip install django-crontab

添加app名称到 settings.py中

INSTALLED_APPS = (
    'django_crontab',
    ...
  )

到这里基本没有问题。

接下来创建定时任务可以分成两种,一种是执行自定义的mange.py的命令,另一种是执行自定义函数。

我选择的方法是自定义函数。

首先在原来的app 中(与view.py同级)新建一个cron.py (名字可以任意,其实也可以放在view.py中,新建文件方便管理。)

def test():
  print 123
  #你要执行的任务函数

在 settings.py中的最后增加

CRONJOBS = [
  ('*/5 * * * *', 'appname.cron.test','>>/home/test.log')
]

如果你有多个定时任务,都放入CORJOBS中即可,

需要说明的是,
‘/5 * * *' 遵循的是crontab 语法。

‘appname.cron.test',这个appname就是你开发时加入到settings中的那个。因为你的cron.py文件就在这个下面,否则找不到路径。cron 就是你自己起的任务文件的名字。test就是执行的函数中的内容。

‘>>/home/test.log',通常会输出信息到一个文件中,就使用这个方法,注意的是‘>>'表示追加写入,'>'表示覆盖写入。

启动

以上都完成后,需要执行

python manage.py crontab add

将任务添加并生效

显示当前的定时任务

python manage.py crontab show

删除所有定时任务

python manage.py crontab remove

重启django服务。

执行

corntab -e

应该是可以看到系统中创建了该定时任务。

说到底,只是django-crontab插件对linux底层的调用,不确定这个方法在windows 上是否生效。

大家可以多做尝试,看下github上的文档,对理解使用还是非常的有帮助。

各种路径一定要确保正确,否则较难排查错误。

介绍依据个人理解,难免疏忽遗漏,如果能帮到大家最好。

参考链接

github : https://github.com/kraiz/django-crontab

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用pdb模块调试Python程序实例
Jun 02 Python
利用Python的Django框架生成PDF文件的教程
Jul 22 Python
Python出现segfault错误解决方法
Apr 16 Python
浅谈Python NLP入门教程
Dec 25 Python
python 遍历目录(包括子目录)下所有文件的实例
Jul 11 Python
Python利用WMI实现ping命令的例子
Aug 14 Python
numpy中三维数组中加入元素后的位置详解
Nov 28 Python
python plotly画柱状图代码实例
Dec 13 Python
使用matlab 判断两个矩阵是否相等的实例
May 11 Python
Python判断远程服务器上Excel文件是否被人打开的方法
Jul 13 Python
Django Model层F,Q对象和聚合函数原理解析
Nov 12 Python
Pycharm配置autopep8实现流程解析
Nov 28 Python
Python使用matplotlib实现交换式图形显示功能示例
Sep 06 #Python
python自动发微信监控报警
Sep 06 #Python
Python使用Slider组件实现调整曲线参数功能示例
Sep 06 #Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
Sep 06 #Python
Python数学形态学实例分析
Sep 06 #Python
Python统计分析模块statistics用法示例
Sep 06 #Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
Sep 06 #Python
You might like
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
php面向对象全攻略 (十四) php5接口技术
2009/09/30 PHP
PHP生成随机密码类分享
2014/06/25 PHP
PHP获取二叉树镜像的方法
2018/01/17 PHP
php支付宝APP支付功能
2020/07/29 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
Dom在ajax技术中的作用说明
2010/10/25 Javascript
DOM 中的事件处理介绍
2012/01/18 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
2018/09/19 Javascript
vue项目引入ts步骤(小结)
2019/10/31 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
python访问纯真IP数据库的代码
2011/05/19 Python
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
Django Admin实现上传图片校验功能
2016/03/06 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
Python实现的单向循环链表功能示例
2017/11/10 Python
python实现桌面托盘气泡提示
2019/07/29 Python
pytorch 常用线性函数详解
2020/01/15 Python
python pyecharts 实现一个文件绘制多张图
2020/05/13 Python
利用python为PostgreSQL的表自动添加分区
2021/01/18 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
洲际酒店集团大中华区:IHG中国
2016/08/17 全球购物
模范教师事迹材料
2014/02/10 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
新书发布会策划方案
2014/06/09 职场文书
销售活动策划方案
2014/08/26 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
教师正风肃纪剖析材料
2014/10/20 职场文书
会计电算化实训报告
2014/11/04 职场文书
老人节主持词
2015/07/04 职场文书
干部考核工作总结
2015/08/12 职场文书
python面向对象版学生信息管理系统
2021/06/24 Python
Redis Stream类型的使用详解
2021/11/11 Redis