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 相关文章推荐
Windows安装Python、pip、easy_install的方法
Mar 05 Python
Python之py2exe打包工具详解
Jun 14 Python
Python向MySQL批量插数据的实例讲解
Mar 31 Python
python 找出list中最大或者最小几个数的索引方法
Oct 30 Python
python用列表生成式写嵌套循环的方法
Nov 08 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
Aug 13 Python
Python Web静态服务器非堵塞模式实现方法示例
Nov 21 Python
使用 Python 处理3万多条数据只要几秒钟
Jan 19 Python
Python中remove漏删和索引越界问题的解决
Mar 18 Python
利用Python的folium包绘制城市道路图的实现示例
Aug 24 Python
python如何停止递归
Sep 09 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
Dec 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
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
2015/06/29 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
Extjs 几个方法的讨论
2010/01/28 Javascript
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
Jquery选中或取消radio示例
2013/09/29 Javascript
js获取指定日期周数以及星期几的小例子
2014/06/27 Javascript
JavaScript匿名函数用法分析
2015/02/13 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
2016/01/08 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
利用nvm管理多个版本的node.js与npm详解
2017/11/02 Javascript
Node.js 如何利用异步提升任务处理速度
2019/01/07 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
python根据出生日期获得年龄的方法
2015/03/31 Python
详解Django中的ifequal和ifnotequal标签使用
2015/07/16 Python
Python实现屏幕截图的代码及函数详解
2016/10/01 Python
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
python3.6使用pickle序列化class的方法
2018/10/22 Python
Python 切分数组实例解析
2019/11/07 Python
python关于变量名的基础知识点
2020/03/03 Python
python中round函数如何使用
2020/06/19 Python
python中常用的数据结构介绍
2021/01/12 Python
css3实现可滑动跳转的分页插件示例
2014/05/08 HTML / CSS
css3 media 响应式布局的简单实例
2016/08/03 HTML / CSS
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
C语言50道问题
2014/10/23 面试题
开展读书活动总结
2014/06/30 职场文书
几款流行的HTML5 UI框架比较(小结)
2021/04/08 HTML / CSS
pandas进行数据输入和输出的方法详解
2022/03/23 Python