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单链表的简单实现方法
Sep 23 Python
Python中使用pprint函数进行格式化输出的教程
Apr 07 Python
深入解答关于Python的11道基本面试题
Apr 01 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
python opencv实现证件照换底功能
Aug 19 Python
简单了解Pandas缺失值处理方法
Nov 16 Python
python requests模拟登陆github的实现方法
Dec 26 Python
Python中文分词库jieba,pkusegwg性能准确度比较
Feb 11 Python
如何用Python 加密文件
Sep 10 Python
matplotlib教程——强大的python作图工具库
Oct 15 Python
Python游戏开发实例之graphics实现AI五子棋
Nov 01 Python
python playwrigh框架入门安装使用
Jul 23 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多层数组与对象的转换实例代码
2013/08/05 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
PHP微信H5支付开发实例
2018/07/25 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
2020/03/23 PHP
JS禁用浏览器退格键实现思路及代码
2013/10/29 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
详解javascript实现瀑布流列式布局
2016/01/29 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
完美实现js选项卡切换效果(一)
2017/03/08 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
node.js express中app.param的用法详解
2017/07/16 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
Vue中的Props(不可变状态)
2018/09/29 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
[08:40]Navi Vs Newbee
2018/06/07 DOTA
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
Python批量转换文件编码格式
2015/05/17 Python
python多线程方式执行多个bat代码
2016/06/07 Python
详解Python实现多进程异步事件驱动引擎
2017/08/25 Python
django模板结构优化的方法
2019/02/28 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
python实现画图工具
2020/08/27 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
舒适的豪华鞋:Taryn Rose
2018/05/03 全球购物
《中彩那天》教学反思
2014/02/22 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
2015年党风建设工作总结
2015/04/29 职场文书
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL