Maison > développement back-end > Tutoriel Python > Une réexécution planifiée écrite en Python pour obtenir les données de la base de données

Une réexécution planifiée écrite en Python pour obtenir les données de la base de données

高洛峰
Libérer: 2017-02-11 13:23:26
original
1880 Les gens l'ont consulté

Cet article partagera avec vous une méthode de réexécution régulière pour obtenir des données de base de données basées sur Python. Il est très bon et a une valeur de référence. Les amis qui en ont besoin peuvent s'y référer

Les enfants qui en ont besoin. les big data écrivent souvent des tâches planifiées. Lors de l'exécution de données, en raison des dépendances entre les tâches (généralement celles en aval dépendent de la sortie des données en amont), l'acquisition des données échoue souvent, car de nombreuses personnes

vérifieront les journaux après. découvrir que les données échouent, puis allez manuellement et effectuez vos propres tâches. Ci-dessous, j'ai implémenté une exécution automatique et répétée pour récupérer les données de la base de données. En cas d'échec, elle les récupérera automatiquement jusqu'à ce que les données soient obtenues.

Créer une table de données :

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;
Copier après la connexion

La table de données est vide au début. Lorsque le script réessaye pendant la 3ème seconde, quelque chose comme Database insère des données.

Ce qui suit est l'implémentation du code 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 = &#39;&#39; 10 self.host = &#39;127.0.0.1&#39; 11 self.port = 3306 12 self.user = &#39;root&#39; 13 self.passwd = &#39;123456&#39; 14 self.db = &#39;test&#39; 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=&#39;utf8&#39;) 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__ == &#39;__main__&#39;: 44 gd = GetData 45 gd.run
Copier après la connexion

Une réexécution planifiée écrite en Python pour obtenir les données de la base de données

Vous pouvez l'exécuter manuellement en vous-même. À la 3ème seconde, exécutez le sql suivant

insert into testtable(`name`) values (&#39;123&#39;),(&#39;456&#39;),(&#39;789&#39;),(&#39;1111&#39;),(&#39;3222&#39;),(&#39;444&#39;);
Copier après la connexion

Ce qui suit est le script de la tâche planifiée

00 08 * * * cd /home/python/lsh_sync; python getdata.py >> getdata.log 2>&1
Copier après la connexion

Ce qui précède est une réexécution programmée écrite en Python pour obtenir les données de la base de données introduites par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message. . L'éditeur répondra à tout le monde rapidement. Je voudrais également vous remercier tous pour votre soutien au site Web PHP chinois !

Pour plus d'articles liés à une réexécution programmée écrite en Python pour obtenir des données de base de données, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal