Python写的一个定时重跑获取数据库数据


Posted in Python onDecember 28, 2016

做大数据的童鞋经常会写定时任务跑数据,由于任务之间的依赖(一般都是下游依赖上游的数据产出),所以经常会导致数据获取失败,因为很多人发现数据失败后

都会去查看日志,然后手动去执行自己的任务。下面我实现了一个自动重复执行去数据库取数,如果失败后自动重新去获取,直到把数据获取到。

建数据表:

CREATE TABLE `testtable` ( 2 `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 3 `name` varchar(20) NOT NULL, 4 PRIMARY KEY (`id`) 5 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

开始的时候数据表是空的,等到脚本重试第3秒的时候像数据库插入数据。

以下是python代码的实现

#!/usr/bin/env python
 #-*- coning:utf-8 -*- 3 4 import MySQLdb 5 from time import sleep 6 7 class GetData(object): 8 def __init__(self): 9 self.conn = '' 10 self.host = '127.0.0.1' 11 self.port = 3306 12 self.user = 'root' 13 self.passwd = '123456' 14 self.db = 'test' 15 self.cnum = 5 #set retry number 16 17 def init_connect(self): 18 self.conn = MySQLdb.connect(host=self.host, user=self.user, passwd=self.passwd, db=self.db, port=self.port, 19 charset='utf8') 20 21 def get_data(self): 22 self.init_connect 23 cur = self.conn.cursor 24 sql = "select * from testtable" 25 cur.execute(sql) 26 rs = cur.fetchall 27 cur.close 28 self.conn.close 29 return rs 30 31 def run(self): 32 count = 1 33 while (count <= self.cnum): 34 rs = self.get_data 35 if len(rs) > 0: 36 print len(rs) 37 break 38 39 print count 40 sleep(10) 41 count += 1 42 43 if __name__ == '__main__': 44 gd = GetData 45 gd.run

Python写的一个定时重跑获取数据库数据

自己可以手动执行,在代码执行到第3秒的时候,执行下面的sql

insert into testtable(`name`) values ('123'),('456'),('789'),('1111'),('3222'),('444');

下面是定时的任务的脚本

00 08 * * * cd /home/python/lsh_sync; python getdata.py >> getdata.log 2>&1

以上所述是小编给大家介绍的Python写的一个定时重跑获取数据库数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python类继承用法实例分析
Oct 10 Python
python中常用检测字符串相关函数汇总
Apr 15 Python
python fabric使用笔记
May 09 Python
python字符串中的单双引
Feb 16 Python
python编程线性回归代码示例
Dec 07 Python
Django ManyToManyField 跨越中间表查询的方法
Dec 18 Python
如何在Django中设置定时任务的方法示例
Jan 18 Python
django框架auth模块用法实例详解
Dec 10 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
Mar 09 Python
pytorch 多分类问题,计算百分比操作
Jul 09 Python
基于logstash实现日志文件同步elasticsearch
Aug 06 Python
python给list排序的简单方法
Dec 10 Python
Python 实现文件的全备份和差异备份详解
Dec 27 #Python
Python Queue模块详细介绍及实例
Dec 27 #Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
Dec 27 #Python
Python 递归函数详解及实例
Dec 27 #Python
python实现二维码扫码自动登录淘宝
Dec 27 #Python
使用Python的Scrapy框架十分钟爬取美女图
Dec 26 #Python
Python中如何获取类属性的列表
Dec 26 #Python
You might like
php模块memcache和memcached区别分析
2011/06/14 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
Linux下编译redis和phpredis的方法
2016/04/07 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
2016/12/23 PHP
PHP设置Cookie的HTTPONLY属性方法
2017/02/09 PHP
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
JavaScript 学习初步 入门教程
2010/03/25 Javascript
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
2011/01/12 Javascript
基于jquery的动态创建表格的插件
2011/04/05 Javascript
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
2013/12/09 Javascript
使用delegate方法为一个tr标签加一个链接
2014/06/27 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
2017/12/08 Javascript
vue组件的写法汇总
2018/04/12 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
Python中下划线的使用方法
2015/03/27 Python
python机器学习理论与实战(二)决策树
2018/01/19 Python
使用Python抓取豆瓣影评数据的方法
2018/10/17 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
python扫描线填充算法详解
2020/02/19 Python
adidas泰国官网:adidas TH
2020/07/11 全球购物
工程总经理工作职责
2013/12/09 职场文书
2014年国庆标语
2014/06/30 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
2016年母亲节广告语
2016/01/28 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL