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 相关文章推荐
详解Django中的过滤器
Jul 16 Python
Python面向对象编程基础解析(一)
Oct 26 Python
解决pycharm无法调用pip安装的包问题
May 18 Python
python 实现批量xls文件转csv文件的方法
Oct 23 Python
python创建文件时去掉非法字符的方法
Oct 31 Python
对python xlrd读取datetime类型数据的方法详解
Dec 26 Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 Python
Python generator生成器和yield表达式详解
Aug 08 Python
python os模块常用的29种方法使用详解
Jun 02 Python
Pycharm中如何关掉python console
Oct 27 Python
Python利用myqr库创建自己的二维码
Nov 24 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 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
Session的工作方式
2006/10/09 PHP
php简单提示框alert封装函数
2010/08/08 PHP
php单例模式的简单实现方法
2016/06/10 PHP
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
2013/04/19 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
jquery mobile 移动web(5)
2015/12/20 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
详解AngularJS过滤器的使用
2016/03/11 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
vue 根据数组中某一项的值进行排序的方法
2018/08/30 Javascript
使用express获取微信小程序二维码小记
2019/05/21 Javascript
详解Vue中的Props与Data细微差别
2020/03/02 Javascript
Vue父组件向子组件传值以及data和props的区别详解
2020/03/02 Javascript
vue3.0实现点击切换验证码(组件)及校验
2020/11/18 Vue.js
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
Python使用django搭建web开发环境
2017/06/09 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
django文档学习之applications使用详解
2018/01/29 Python
python如何通过实例方法名字调用方法
2018/03/21 Python
目前最全的python的就业方向
2018/06/05 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
Python 3.6 -win64环境安装PIL模块的教程
2019/06/20 Python
Python 实用技巧之利用Shell通配符做字符串匹配
2019/08/23 Python
python3获取url文件大小示例代码
2019/09/18 Python
Python箱型图处理离群点的例子
2019/12/09 Python
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
军人违纪检讨书
2014/02/04 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
校长师德表现自我评价
2015/03/04 职场文书
离婚被告答辩状
2015/05/22 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书
浅谈Python数学建模之数据导入
2021/06/23 Python
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python