Heim > Artikel > Backend-Entwicklung > Eine in Python geschriebene geplante Wiederholung, um Datenbankdaten abzurufen
In diesem Artikel wird eine Methode zum regelmäßigen erneuten Ausführen vorgestellt, um Datenbankdaten basierend auf Python zu erhalten. Sie ist sehr gut und hat Referenzwert.
Kinder, die dies tun Big Data schreibt häufig geplante Aufgaben aufgrund der Abhängigkeiten zwischen Aufgaben (normalerweise hängt der Downstream von der Datenausgabe des Upstreams ab). Die Datenerfassung schlägt häufig fehl, da viele Personen die Protokolle anschließend überprüfen Stellen Sie fest, dass die Daten fehlerhaft sind, und führen Sie dann manuell Ihre eigenen Aufgaben aus. Im Folgenden habe ich eine automatische und wiederholte Ausführung implementiert, um Daten aus der Datenbank abzurufen. Wenn dies fehlschlägt, werden sie automatisch erneut abgerufen, bis die Daten abgerufen werden.
Erstellen Sie eine Datentabelle:
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;
Die Datentabelle ist zu Beginn leer. Wenn das Skript in der dritten Sekunde erneut versucht, so etwas wie Datenbank fügt Daten ein.
Das Folgende ist die Implementierung von Python-Code
#!/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
Sie können ihn manuell ausführen Führen Sie in der 3. Sekunde die folgende SQL aus
insert into testtable(`name`) values ('123'),('456'),('789'),('1111'),('3222'),('444');
Das Folgende ist das Skript der geplanten Aufgabe
00 08 * * * cd /home/python/lsh_sync; python getdata.py >> getdata.log 2>&1
Das Obige ist eine geplante Wiederholung, die vom Herausgeber zum Abrufen der Datenbankdaten geschrieben wurde. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht . Der Herausgeber wird allen umgehend antworten. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der chinesischen PHP-Website bedanken!
Weitere Artikel zu einer geplanten Wiederholung, die in Python geschrieben wurde, um Datenbankdaten zu erhalten, finden Sie auf der chinesischen PHP-Website!