Python寫的一個定時重跑獲取數(shù)據(jù)庫數(shù)據(jù)
做大數(shù)據(jù)的童鞋經(jīng)常會寫定時任務(wù)跑數(shù)據(jù),由于任務(wù)之間的依賴(一般都是下游依賴上游的數(shù)據(jù)產(chǎn)出),所以經(jīng)常會導(dǎo)致數(shù)據(jù)獲取失敗,因為很多人發(fā)現(xiàn)數(shù)據(jù)失敗后
都會去查看日志,然后手動去執(zhí)行自己的任務(wù)。下面我實現(xiàn)了一個自動重復(fù)執(zhí)行去數(shù)據(jù)庫取數(shù),如果失敗后自動重新去獲取,直到把數(shù)據(jù)獲取到。
建數(shù)據(jù)表:
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;
開始的時候數(shù)據(jù)表是空的,等到腳本重試第3秒的時候像數(shù)據(jù)庫插入數(shù)據(jù)。
以下是python代碼的實現(xiàn)
#!/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
自己可以手動執(zhí)行,在代碼執(zhí)行到第3秒的時候,執(zhí)行下面的sql
insert into testtable(`name`) values ('123'),('456'),('789'),('1111'),('3222'),('444');
下面是定時的任務(wù)的腳本
00 08 * * * cd /home/python/lsh_sync; python getdata.py >> getdata.log 2>&1
以上所述是小編給大家介紹的Python寫的一個定時重跑獲取數(shù)據(jù)庫數(shù)據(jù),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Python3實現(xiàn)取圖片中特定的像素替換指定的顏色示例
這篇文章主要介紹了Python3實現(xiàn)取圖片中特定的像素替換指定的顏色,涉及Python3針對圖片文件的讀取、轉(zhuǎn)換、生成等相關(guān)操作技巧,需要的朋友可以參考下2019-01-01Blueprint實現(xiàn)路由分組及Flask中session的使用詳解
這篇文章主要為大家介紹了Blueprint實現(xiàn)路由分組及Flask中session的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11