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编写android截屏脚本双击运行即可
Jul 21 Python
Python编写屏幕截图程序方法
Feb 18 Python
使用Python编写类UNIX系统的命令行工具的教程
Apr 15 Python
Python编程判断一个正整数是否为素数的方法
Apr 14 Python
Python中进程和线程的区别详解
Oct 29 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
Dec 15 Python
Python使用folium excel绘制point
Jan 03 Python
python 列表输出重复值以及对应的角标方法
Jun 11 Python
python装饰器使用实例详解
Dec 14 Python
将python依赖包打包成window下可执行文件bat方式
Dec 26 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
Apr 26 Python
基于Python实现粒子滤波效果
Dec 01 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 SQL防注入代码集合
2008/04/25 PHP
Drupal7中常用的数据库操作实例
2014/03/02 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
2014/11/19 PHP
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
XP折叠菜单&仿QQ2006菜单
2006/12/16 Javascript
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
node模块机制与异步处理详解
2016/03/13 Javascript
jQuery实现移动端手机商城购物车功能
2016/09/24 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
小程序选项卡以及swiper套用(跨页面)
2020/06/19 Javascript
使用vue引入maptalks地图及聚合效果的实现
2020/08/10 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
详解ES6 扩展运算符的使用与注意事项
2020/11/12 Javascript
简单介绍Python中的filter和lambda函数的使用
2015/04/07 Python
使用SAE部署Python运行环境的教程
2015/05/05 Python
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
《彩色世界》教学反思
2014/04/12 职场文书
教师演讲稿大全
2014/05/16 职场文书
预备党员综合考察材料
2014/05/31 职场文书
电大奖学金获奖感言
2014/08/14 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
2015年秋季灭鼠工作总结
2015/07/27 职场文书
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android