做大数据的童鞋经常会写定时任务跑数据,由于任务之间的依赖(一般都是下游依赖上游的数据产出),所以经常会导致数据获取失败,因为很多人发现数据失败后
都会去查看日志,然后手动去执行自己的任务。下面我实现了一个自动重复执行去数据库取数,如果失败后自动重新去获取,直到把数据获取到。
建数据表:
CREATE TABLE `testtable` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
开始的时候数据表是空的,等到脚本重试第3秒的时候向数据库插入数据。以下是python代码的实现
#!/usr/bin/env python
#-*- coning:utf-8 -*-
import MySQLdb
from time import sleep
class GetData(object):
def __init__(self):
self.conn = ''
self.host = '127.0.0.1'
self.port = 3306
self.user = 'root'
self.passwd = ''
self.db = 'test'
self.cnum