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 相关文章推荐
pyqt4教程之实现半透明的天气预报界面示例
Mar 02 Python
Python Web框架Flask下网站开发入门实例
Feb 08 Python
浅谈python中的getattr函数 hasattr函数
Jun 14 Python
修改默认的pip版本为对应python2.7的方法
Nov 06 Python
pandas DataFrame 交集并集补集的实现
Jun 24 Python
anaconda中更改python版本的方法步骤
Jul 14 Python
python基于json文件实现的gearman任务自动重启代码实例
Aug 13 Python
python实现高斯判别分析算法的例子
Dec 09 Python
python如何求数组连续最大和的示例代码
Feb 04 Python
150行python代码实现贪吃蛇游戏
Apr 24 Python
Python调用OpenCV实现图像平滑代码实例
Jun 19 Python
python 实现批量图片识别并翻译
Nov 02 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 压缩文件夹的类代码
2009/11/05 PHP
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
PHP APC缓存配置、使用详解
2014/03/06 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
PHP标准库 (SPL)――Countable用法示例
2020/06/05 PHP
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
js/jquery去掉空格,回车,换行示例代码
2013/11/05 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
Windows系统下Node.js的简单入门教程
2015/06/23 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
2017/01/11 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
pyshp创建shp点文件的方法
2018/12/31 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
pytorch: Parameter 的数据结构实例
2019/12/31 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
Python常用编译器原理及特点解析
2020/03/23 Python
htnl5利用svg页面高斯模糊的方法
2018/07/20 HTML / CSS
萨克斯第五大道英国:Saks Fifth Avenue英国
2019/04/01 全球购物
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
物流管理专业大学生自荐信
2013/10/04 职场文书
小学生通知书评语
2014/12/31 职场文书
个人收入证明范本
2015/06/12 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
车位出租协议书范本
2016/03/19 职场文书
MySQL 数据类型选择原则
2021/05/27 MySQL
Mysql表数据比较大情况下修改添加字段的方法实例
2022/06/28 MySQL
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers