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函数式编程指南(二):从函数开始
Jun 24 Python
用Python的Django框架来制作一个RSS阅读器
Jul 22 Python
python从入门到精通(DAY 1)
Dec 20 Python
python检查URL是否正常访问的小技巧
Feb 25 Python
使用Python操作excel文件的实例代码
Oct 15 Python
python实现Floyd算法
Jan 03 Python
Python3.5面向对象程序设计之类的继承和多态详解
Apr 24 Python
Python统计学一数据的概括性度量详解
Mar 03 Python
Django实现celery定时任务过程解析
Apr 21 Python
python 删除excel表格重复行,数据预处理操作
Jul 06 Python
Selenium webdriver添加cookie实现过程详解
Aug 12 Python
Python使用mitmproxy工具监控手机 下载手机小视频
Apr 18 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
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
浅谈php://filter的妙用
2019/03/05 PHP
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
2009/07/14 Javascript
js中eval详解
2012/03/30 Javascript
快速查找数组中的某个元素并返回下标示例
2013/09/03 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
2015/03/10 Javascript
脚本div实现拖放功能(两种)
2017/02/13 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
微信小程序仿微信运动步数排行(交互)
2018/07/13 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
2019/05/10 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
Vue中多元素过渡特效的解决方案
2020/02/05 Javascript
[00:10]神之谴戒
2019/03/06 DOTA
总结用Pdb库调试Python的方式及常用的命令
2016/08/18 Python
python 3.5实现检测路由器流量并写入txt的方法实例
2017/12/17 Python
简单了解什么是神经网络
2017/12/23 Python
Python使用遗传算法解决最大流问题
2018/01/29 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
python实现彩色图转换成灰度图
2019/01/15 Python
Python序列化pickle模块使用详解
2020/03/05 Python
造价工程师个人求职信
2013/09/21 职场文书
初婚未育未抱养证明
2014/01/12 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
感谢信的格式
2015/01/21 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
2015年医院护理部工作总结
2015/04/23 职场文书
关于运动会的宣传稿
2015/07/23 职场文书
详解thinkphp的Auth类认证
2021/05/28 PHP
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript