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的web框架中的Model的教程
Apr 29 Python
Python编程中运用闭包时所需要注意的一些地方
May 02 Python
简单介绍使用Python解析并修改XML文档的方法
Oct 15 Python
Python实现列表转换成字典数据结构的方法
Mar 11 Python
python 实现矩阵上下/左右翻转,转置的示例
Jan 23 Python
使用 Python 处理 JSON 格式的数据
Jul 22 Python
Python turtle绘画象棋棋盘
Aug 21 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
Pycharm同步远程服务器调试的方法步骤
Nov 04 Python
python基于turtle绘制几何图形
Jun 15 Python
python使用matplotlib绘制图片时x轴的刻度处理
Aug 30 Python
Python编程中Python与GIL互斥锁关系作用分析
Sep 15 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最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
Smarty中常用变量操作符汇总
2014/10/27 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
Mac系统完美安装PHP7详细教程
2017/06/06 PHP
html 锁定页面(js遮罩层弹出div效果)
2009/10/27 Javascript
select标签模拟/美化方法采用JS外挂式插件
2013/04/01 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
JS截取字符串实例详解
2015/11/24 Javascript
7个jQuery最佳实践
2016/01/12 Javascript
jQuery Ajax 加载数据时异步显示加载动画
2016/08/01 Javascript
jQuery实现的兼容性浮动层示例
2016/08/02 Javascript
Js遍历键值对形式对象或Map形式的方法
2016/08/08 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
如何在Python中编写并发程序
2016/02/27 Python
python3 线性回归验证方法
2019/07/09 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
2020/03/13 Python
详细分析Python collections工具库
2020/07/16 Python
台湾百利市购物中心:e-Payless
2017/08/16 全球购物
运动会加油口号
2014/06/07 职场文书
《中国梦我的梦》中学生演讲稿
2014/08/20 职场文书
质量整改报告范文
2014/11/08 职场文书
出国签证在职证明范本
2014/11/24 职场文书
上帝也疯狂观后感
2015/06/09 职场文书
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers