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 相关文章推荐
仅利用30行Python代码来展示X算法
Apr 01 Python
实例解析Python的Twisted框架中Deferred对象的用法
May 25 Python
Python+微信接口实现运维报警
Aug 27 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
python 自动重连wifi windows的方法
Dec 18 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
简单了解Python matplotlib线的属性
Jun 29 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
Jun 04 Python
python正则表达式 匹配反斜杠的操作方法
Aug 07 Python
利用python制作拼图小游戏的全过程
Dec 04 Python
利用Python批量识别电子账单数据的方法
Feb 08 Python
Python 绘制多因子柱状图
May 11 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
PHP开发中四种查询返回结果分析
2011/01/02 PHP
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
利用php生成验证码
2017/02/23 PHP
常用的javascript function代码
2008/05/23 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
2014/10/31 Javascript
常用的JavaScript模板引擎介绍
2015/02/28 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
JavaScript 拖拽实例代码
2016/09/21 Javascript
基于jQuery实现的打字机效果
2017/01/16 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
2017/03/29 Javascript
Bootstrap Table使用整理(五)之分页组合查询
2017/06/09 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
vue登录路由验证的实现
2017/12/13 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
vue axios 在页面切换时中断请求方法 ajax
2018/03/05 Javascript
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
小程序分享模块超级详解(推荐)
2019/04/10 Javascript
如何用原生js写一个弹窗消息提醒插件
2019/05/24 Javascript
使用Vue调取接口,并渲染数据的示例代码
2019/10/28 Javascript
微信小程序实现锚点功能
2019/11/20 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
2020/10/24 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
[01:05:40]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第三场
2014/05/24 DOTA
对python过滤器和lambda函数的用法详解
2019/01/21 Python
python实现数据分析与建模
2019/07/11 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
俄罗斯童装网上商店:BebaKids
2020/06/06 全球购物
消防安全汇报材料
2014/02/08 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
物流仓管员岗位职责
2015/04/01 职场文书