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根据文件大小打log日志
Oct 09 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
May 09 Python
详解Python中类的定义与使用
Apr 11 Python
python unittest实现api自动化测试
Apr 04 Python
numpy.transpose对三维数组的转置方法
Apr 17 Python
Python实现重建二叉树的三种方法详解
Jun 23 Python
python实现爬取百度图片的方法示例
Jul 06 Python
python实现图片二值化及灰度处理方式
Dec 07 Python
Python实现EM算法实例代码
Oct 04 Python
Pycharm中使用git进行合作开发的教程详解
Nov 17 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
Nov 27 Python
python opencv通过4坐标剪裁图片
Jun 05 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中使用Oracle数据库(3)
2006/10/09 PHP
一个好用的分页函数
2006/11/16 PHP
php 时间计算问题小结
2009/01/04 PHP
php笔记之:文章中图片处理的使用
2013/04/26 PHP
Codeigniter实现多文件上传并创建多个缩略图
2014/06/12 PHP
php读取目录及子目录下所有文件名的方法
2014/10/20 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
在php7中MongoDB实现模糊查询的方法详解
2017/05/03 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
JavaScript的Function详细
2006/11/14 Javascript
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
iphone safari不支持position fixed的解决方法
2012/05/04 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
[10:07]2014DOTA2国际邀请赛 实拍选手现场观战DK对阵Titan
2014/07/12 DOTA
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
[40:31]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[53:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第三场 1月18日
2021/03/11 DOTA
Python字符串、元组、列表、字典互相转换的方法
2016/01/23 Python
解决python爬虫中有中文的url问题
2018/05/11 Python
详解js文件通过python访问数据库方法
2019/03/03 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
2019/10/04 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
New Balance加拿大官方网站:运动鞋和健身服装
2018/11/19 全球购物
班主任班级寄语大全
2014/04/04 职场文书
2014教师评职称工作总结
2014/11/10 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
pytorch 如何使用batch训练lstm网络
2021/05/28 Python
Django实现聊天机器人
2021/05/31 Python
分享几种python 变量合并方法
2022/03/20 Python