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 自动补全(vim)
Nov 30 Python
Python实现的数据结构与算法之双端队列详解
Apr 22 Python
Python实现自动添加脚本头信息的示例代码
Sep 02 Python
python3制作捧腹网段子页爬虫
Feb 12 Python
老生常谈Python序列化和反序列化
Jun 28 Python
Python 比较两个数组的元素的异同方法
Aug 17 Python
python打包压缩、读取指定目录下的指定类型文件
Apr 12 Python
PyCharm 设置SciView工具窗口的方法
Jan 15 Python
Pandas读写CSV文件的方法示例
Mar 27 Python
opencv转换颜色空间更改图片背景
Aug 20 Python
浅析python,PyCharm,Anaconda三者之间的关系
Nov 27 Python
Python3+selenium实现cookie免密登录的示例代码
Mar 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
jquery 最简单的属性菜单
2009/10/08 Javascript
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
js控制淡入淡出示例代码
2013/11/12 Javascript
JavaScript获取当前网页最后修改时间的方法
2015/04/03 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
全面解析Bootstrap表单使用方法(表单按钮)
2015/11/24 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
2019/07/25 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
Python3+Appium安装使用教程
2019/07/05 Python
基于多进程中APScheduler重复运行的解决方法
2019/07/22 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
学生如何注册Pycharm专业版以及pycharm的安装
2020/09/24 Python
python matplotlib绘制三维图的示例
2020/09/24 Python
关于Python错误重试方法总结
2021/01/03 Python
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
《北京的春节》教学反思
2014/04/07 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
初婚初育证明范本
2015/06/18 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
导游带团欢迎词
2015/09/30 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
python实现简单的三子棋游戏
2022/04/28 Python