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代码(逐级优化)
May 25 Python
在Python的web框架中配置app的教程
Apr 30 Python
用python找出那些被“标记”的照片
Apr 20 Python
python 计算两个日期相差多少个月实例代码
May 24 Python
python3之微信文章爬虫实例讲解
Jul 12 Python
python数据结构之链表的实例讲解
Jul 25 Python
Python实现的读取文件内容并写入其他文件操作示例
Apr 09 Python
centos 安装Python3 及对应的pip教程详解
Jun 28 Python
Python MySQL 日期时间格式化作为参数的操作
Mar 02 Python
Jupyter 无法下载文件夹如何实现曲线救国
Apr 22 Python
Pycharm打开已有项目配置python环境的方法
Jul 03 Python
解决python对齐错误的方法
Jul 16 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 5.3.0 安装分析心得
2009/08/07 PHP
php下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
php接口和抽象类使用示例详解
2014/03/02 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
2020/04/23 PHP
input 高级限制级用法
2009/03/26 Javascript
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
jQuery 源码分析笔记(7) Queue
2011/06/19 Javascript
浅析js中2个等号与3个等号的区别
2013/08/06 Javascript
JS的get和set使用示例
2014/02/20 Javascript
input:checkbox多选框实现单选效果跟radio一样
2014/06/16 Javascript
JavaScript将数组转换成CSV格式的方法
2015/03/19 Javascript
基于jquery实现省市联动效果
2015/11/23 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
JavaScript中捕获与冒泡详解及实例
2017/02/03 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
2018/03/19 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
js实现页面导航层级指示效果
2020/08/25 Javascript
Python图算法实例分析
2016/08/13 Python
Python3 操作符重载方法示例
2017/11/23 Python
python清理子进程机制剖析
2017/11/23 Python
利用Vscode进行Python开发环境配置的步骤
2020/06/22 Python
Python中Yield的基本用法
2020/10/18 Python
WoolOvers澳洲官方网站:英国针织服装公司
2018/05/13 全球购物
介绍一下EJB的分类及其各自的功能及应用
2016/08/23 面试题
高中生职业生涯规划书
2014/02/24 职场文书
计算机毕业生自荐信范文
2014/03/23 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
初三数学教学反思
2016/02/17 职场文书
员工试用期工作总结
2019/06/20 职场文书
Python实现socket库网络通信套接字
2021/06/04 Python
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript