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爬虫抓取手机APP的传输数据
Jan 22 Python
浅谈使用Python内置函数getattr实现分发模式
Jan 22 Python
Python实现多级目录压缩与解压文件的方法
Sep 01 Python
python之验证码生成(gvcode与captcha)
Jan 02 Python
python队列Queue的详解
May 10 Python
python发送多人邮件没有展示收件人问题的解决方法
Jun 21 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
Aug 12 Python
python+mysql实现个人论文管理系统
Oct 25 Python
PyQt5中多线程模块QThread使用方法的实现
Jan 31 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
Apr 07 Python
keras实现VGG16方式(预测一张图片)
Jul 07 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
May 21 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
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
2013/11/12 PHP
PHP解析RSS的方法
2015/03/05 PHP
PHP简单实现冒泡排序的方法
2016/12/26 PHP
老生常谈PHP中的数据结构:DS扩展
2017/07/17 PHP
ThinkPHP 5.1 跨域配置方法
2019/10/11 PHP
理解Javascript闭包
2013/11/01 Javascript
使用js写的一个简易的投票
2013/11/27 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
详解JavaScript常量定义
2017/01/03 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
Python编程中的反模式实例分析
2014/12/08 Python
Python中实现从目录中过滤出指定文件类型的文件
2015/02/02 Python
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
python爬虫之线程池和进程池功能与用法详解
2018/08/02 Python
python 常见字符串与函数的用法详解
2018/11/23 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
python高斯分布概率密度函数的使用详解
2019/07/10 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
python tqdm库的使用
2020/11/30 Python
HTML5之SVG 2D入门7—SVG元素的重用与引用
2013/01/30 HTML / CSS
关于.NET, HTML的五个问题
2012/08/29 面试题
毕业生的自我评价范文
2013/12/31 职场文书
三年级语文教学反思
2014/02/01 职场文书
致100米运动员广播稿
2014/02/14 职场文书
品牌服务方案
2014/06/03 职场文书
无私奉献演讲稿
2014/09/04 职场文书
领导干部群众路线对照检查材料
2014/11/05 职场文书
小学班主任研修日志
2015/11/13 职场文书