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 相关文章推荐
Python自动登录126邮箱的方法
Jul 10 Python
利用Python如何生成随机密码
Apr 20 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
Nov 06 Python
使用python 3实现发送邮件功能
Jun 15 Python
Python多继承原理与用法示例
Aug 23 Python
python实现移位加密和解密
Mar 22 Python
python将四元数变换为旋转矩阵的实例
Dec 04 Python
python kafka 多线程消费者&手动提交实例
Dec 21 Python
Pytorch对Himmelblau函数的优化详解
Feb 29 Python
python 解决Fatal error in launcher:错误问题
May 21 Python
python json.dumps() json.dump()的区别详解
Jul 14 Python
Selenium python时间控件输入问题解决方案
Jul 22 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初学者们头痛的十四个问题
2007/01/15 PHP
Look And Say 序列php实现代码
2011/05/22 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
jQuery 性能优化指南(2)
2009/05/21 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
Jquery中"$(document).ready(function(){ })"函数的使用详解
2013/12/30 Javascript
关于img的href和src取变量及赋值的方法
2014/04/28 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
使用js画图之饼图
2015/01/12 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
vue el-table实现自定义表头
2019/12/11 Javascript
Python装饰器的函数式编程详解
2015/02/27 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
2018/11/21 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
python的scipy实现插值的示例代码
2019/11/12 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
北欧最好的童装网上商店:Babyshop
2019/09/15 全球购物
大学毕业生自荐书怎么写?
2014/01/06 职场文书
工艺工程师岗位职责
2014/03/04 职场文书
美术学专业求职信
2014/07/23 职场文书
辞职信格式范文
2015/05/13 职场文书
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python
分析JVM源码之Thread.interrupt系统级别线程打断
2021/06/29 Java/Android
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android
使用Ajax实现进度条的绘制
2022/04/07 Javascript