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实现一个简单的线程池
Apr 07 Python
Python抓取电影天堂电影信息的代码
Apr 07 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 Python
Python新手入门最容易犯的错误总结
Apr 24 Python
Python实现的中国剩余定理算法示例
Aug 05 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
Mar 23 Python
python队列Queue的详解
May 10 Python
PyQt5 加载图片和文本文件的实例
Jun 14 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
Feb 26 Python
django model object序列化实例
Mar 13 Python
python实现遍历文件夹图片并重命名
Mar 23 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
Jan 08 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学习教程之第2天
2008/06/15 PHP
基于HTTP长连接的"服务器推"技术的php 简易聊天室
2009/10/31 PHP
php有效防止同一用户多次登录
2015/11/19 PHP
基于PHP实现简单的随机抽奖小程序
2016/01/05 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
一些有关检查数据的JS代码
2006/09/07 Javascript
Gird组件 Part-3:范例RSSFeed Viewer
2007/03/10 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
javascript实现简单计算器效果【推荐】
2016/04/19 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
浅谈webpack 四个核心概念之Entry
2019/06/12 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
js实现盒子移动动画效果
2020/08/09 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
2020/10/24 Javascript
python抓取网页内容示例分享
2014/02/24 Python
Python多线程爬虫简单示例
2016/03/04 Python
多个应用共存的Django配置方法
2018/05/30 Python
结合OpenCV与TensorFlow进行人脸识别的实现
2019/10/10 Python
解决python -m pip install --upgrade pip 升级不成功问题
2020/03/05 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
Python drop方法删除列之inplace参数实例
2020/06/27 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
2020/07/20 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
迷你西餐厅创业计划书范文
2013/12/31 职场文书
主持人婚宴答谢词
2014/01/28 职场文书
工作态度检讨书
2014/02/11 职场文书
售后服务承诺书范文
2014/03/26 职场文书
出国留学计划书
2014/04/27 职场文书
企业标语大全
2014/07/01 职场文书
资产移交协议书
2016/03/24 职场文书
解决pytorch-gpu 安装失败的记录
2021/05/24 Python