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求斐波那契数列示例分享
Feb 14 Python
Windows和Linux下使用Python访问SqlServer的方法介绍
Mar 10 Python
python递归删除指定目录及其所有内容的方法
Jan 13 Python
Scrapy的简单使用教程
Oct 24 Python
python简单图片操作:打开\显示\保存图像方法介绍
Nov 23 Python
Python完成毫秒级抢淘宝大单功能
Jun 06 Python
Python 实现交换矩阵的行示例
Jun 26 Python
Django中自定义模型管理器(Manager)及方法
Sep 23 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
Jun 12 Python
keras得到每层的系数方式
Jun 15 Python
如何更换python默认编辑器的背景色
Aug 10 Python
python性能测试工具locust的使用
Dec 28 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+jquery实时显示网站在线人数的方法
2015/01/04 PHP
详谈php中 strtr 和 str_replace 的效率问题
2017/05/14 PHP
PHP折半(二分)查找算法实例分析
2018/05/12 PHP
jQuery 在光标定位的地方插入文字的插件
2012/05/10 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
第一次接触神奇的Bootstrap菜单和导航
2016/08/01 Javascript
HTML5 canvas 9绘制图片实例详解
2016/09/06 Javascript
js 性能优化之快速响应的用户界面
2017/02/15 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
nodejs aes 加解密实例
2018/10/10 NodeJs
node学习笔记之读写文件与开启第一个web服务器操作示例
2019/05/29 Javascript
react 移动端实现列表左滑删除的示例代码
2019/07/04 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
2020/07/27 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
实例说明Python中比较运算符的使用
2015/05/13 Python
Python实现代码统计工具(终极篇)
2016/07/04 Python
python检测主机的连通性并记录到文件的实例
2018/06/21 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
PyCharm刷新项目(文件)目录的实现
2020/02/14 Python
django 模型字段设置默认值代码
2020/07/15 Python
Django静态文件加载失败解决方案
2020/08/26 Python
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
提高EJB性能都有哪些技巧
2012/03/25 面试题
药剂专业个人求职信范文
2014/04/29 职场文书
合作协议书格式
2014/08/19 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
Java由浅入深通关抽象类与接口(上篇)
2022/04/26 Java/Android
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js