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批量提取word内信息
Aug 09 Python
Python装饰器模式定义与用法分析
Aug 06 Python
对python中数组的del,remove,pop区别详解
Nov 07 Python
Python数据可视化库seaborn的使用总结
Jan 15 Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 Python
python频繁写入文件时提速的方法
Jun 26 Python
python3 批量获取对应端口服务的实例
Jul 25 Python
Python适配器模式代码实现解析
Aug 02 Python
对python中UDP,socket的使用详解
Aug 22 Python
PyCharm 无法 import pandas 程序卡住的解决方式
Mar 09 Python
Python decorator拦截器代码实例解析
Apr 04 Python
Python实现ElGamal加密算法的示例代码
Jun 19 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设计模式 State (状态模式)
2011/06/26 PHP
PHP使用PDO连接ACCESS数据库
2015/03/05 PHP
php+mysql实现简单的增删改查功能
2015/07/13 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
laravel异步监控定时调度器实例详解
2019/06/21 PHP
laravel 解决强制跳转 https的问题
2019/10/22 PHP
jquery显示和隐藏div特效实例
2013/02/27 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
2014/02/28 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
基于javascript实现图片懒加载
2016/01/05 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
vue2.0 axios前后端数据处理实例代码
2017/06/30 Javascript
Vue filters过滤器的使用方法
2017/07/14 Javascript
使用javaScript实现鼠标拖拽事件
2020/04/03 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
JS代码实现页面切换效果
2021/01/10 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
[05:49]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS 选手采访
2021/03/11 DOTA
浅谈Python中copy()方法的使用
2015/05/21 Python
python音频处理用到的操作的示例代码
2017/10/27 Python
python使用mysql的两种使用方式
2018/03/07 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
python处理大日志文件
2019/07/23 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
python3.8 微信发送服务器监控报警消息代码实现
2019/11/05 Python
如何卸载python插件
2020/07/08 Python
Python实现自动整理文件的脚本
2020/12/17 Python
销售人员个人求职信
2013/09/26 职场文书
护理专业个人求职简历的自我评价
2013/10/13 职场文书
公司薪酬管理制度
2014/01/31 职场文书
入学生会自荐书范文
2014/02/05 职场文书
主婚人致辞精选
2015/07/28 职场文书