ホームページ  >  記事  >  バックエンド開発  >  データベース データを取得するために Python で作成されたスケジュールされた再実行

データベース データを取得するために Python で作成されたスケジュールされた再実行

高洛峰
高洛峰オリジナル
2017-02-11 13:23:261808ブラウズ

この記事では、データベース データを取得するために Python で書かれたスケジュールされた再実行方法を共有します。これは非常に優れており、必要な友人は参考にしてください。データを実行するタスクには相互依存関係があるため (通常、ダウンストリームはアップストリームのデータ出力に依存します)、多くの人がデータの失敗を発見した後にログを確認するため、データ取得の失敗につながることがよくあります。そしてタスクを手動で実行します。以下では、データベースからデータを取得するための自動繰り返し実行を実装しました。失敗した場合、データが取得されるまで自動的に再取得されます。

データテーブルを作成します:

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 = &#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

コードが3秒目まで実行されたら、次のSQLを実行します

データベース データを取得するために Python で作成されたスケジュールされた再実行

insert into testtable(`name`) values (&#39;123&#39;),(&#39;456&#39;),(&#39;789&#39;),(&#39;1111&#39;),(&#39;3222&#39;),(&#39;444&#39;);

以下スケジュールされたタスク スクリプトです

00 08 * * * cd /home/python/lsh_sync; python getdata.py >> getdata.log 2>&1

上記は、エディターによって紹介されたデータベース データを取得するために Python で書かれたスケジュールされた再実行です。ご質問があれば、メッセージを残してください。編集者は全員にすぐに返信します。また、PHP 中国語 Web サイトをサポートしていただきありがとうございます。

データベース データを取得するために Python で作成されたスケジュールされた再実行に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。