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 相关文章推荐
pytyon 带有重复的全排列
Aug 13 Python
Python Nose框架编写测试用例方法
Oct 26 Python
python计算列表内各元素的个数实例
Jun 29 Python
python生成密码字典的方法
Jul 06 Python
Python实现聊天机器人的示例代码
Jul 09 Python
使用pytorch进行图像的顺序读取方法
Jul 27 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
Sep 19 Python
Python高级编程之继承问题详解(super与mro)
Nov 19 Python
Python查找不限层级Json数据中某个key或者value的路径方式
Feb 27 Python
利用jupyter网页版本进行python函数查询方式
Apr 14 Python
详解python os.path.exists判断文件或文件夹是否存在
Nov 16 Python
Python APScheduler执行使用方法详解
Dec 10 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中文本数据翻页(留言本翻页)
2006/10/09 PHP
php二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
php中require和require_once的区别说明
2014/02/27 PHP
Yii配置文件用法详解
2014/12/04 PHP
javascript 动态参数判空操作
2008/12/22 Javascript
jquery中实现标签切换效果的代码
2011/03/01 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
jquery中filter方法用法实例分析
2015/02/06 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
JavaScript中object和Object的区别(详解)
2017/02/27 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
JavaScript之解构赋值的理解
2019/01/30 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
[03:49]2016完美“圣”典风云人物:AMS专访
2016/12/06 DOTA
python的urllib模块显示下载进度示例
2014/01/17 Python
python中函数总结之装饰器闭包详解
2016/06/12 Python
python使用邻接矩阵构造图代码示例
2017/11/10 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
pycharm 配置远程解释器的方法
2018/10/28 Python
pycharm配置git(图文教程)
2019/08/16 Python
信号生成及DFT的python实现方式
2020/02/25 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
编辑找工作求职信范文
2013/12/16 职场文书
开办大学饮食联盟创业计划书
2014/01/29 职场文书
小学教师培训感言
2014/02/11 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
收款授权委托书
2014/10/02 职场文书
2015年加油站工作总结
2015/05/13 职场文书
Python数据分析之pandas函数详解
2021/04/21 Python
四十九个javascript小知识实用技巧
2021/11/20 Javascript