[解決済み] 最大回数まで何かを試す pythonic な方法はありますか?重複
2023-01-11 13:49:32
質問
私は、共有Linuxホスト上のMySQLサーバにクエリを実行するPythonスクリプトを持っています。何らかの理由で、MySQL へのクエリはしばしば "server has gone away" エラーを返します。
_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')
直後にクエリを再実行すると、通常は成功します。そこで、私は、クエリを実行しようとし、失敗した場合、一定の回数まで再試行するための賢明な方法がパイソンにあるかどうかを知りたいと思います。おそらく、私はそれが完全にあきらめる前に5回を試してみたいと思っています。
私が持っているコードの種類は以下のとおりです。
conn = MySQLdb.connect(host, user, password, database)
cursor = conn.cursor()
try:
cursor.execute(query)
rows = cursor.fetchall()
for row in rows:
# do something with the data
except MySQLdb.Error, e:
print "MySQL Error %d: %s" % (e.args[0], e.args[1])
明らかにexcept節で別の試みをすることで可能ですが、それは信じられないほど醜いですし、これを達成するためのまともな方法があるはずだと感じています。
どのように解決するのですか?
どうでしょう。
conn = MySQLdb.connect(host, user, password, database)
cursor = conn.cursor()
attempts = 0
while attempts < 3:
try:
cursor.execute(query)
rows = cursor.fetchall()
for row in rows:
# do something with the data
break
except MySQLdb.Error, e:
attempts += 1
print "MySQL Error %d: %s" % (e.args[0], e.args[1])
関連
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] 複数行の長い文字列を作成するためのPythonicな方法
-
[解決済み] Pythonで複数行のコメントを作成する方法はありますか?
-
[解決済み] リストの要素を値で削除する簡単な方法はありますか?
-
[解決済み] スレッドを強制終了させる方法はありますか?
-
[解決済み] Pythonのリクエストモジュールを使ってtry/exceptする正しい方法?
-
[解決済み] 存在しないかもしれないファイルを削除するための最もpythonicな方法
-
[解決済み] 2つのディクショナを結合する(両方に現れるキーの値を追加する)pythonicな方法はありますか?
-
[解決済み】Pythonで複数のコンストラクタを持つためのクリーンでPythonicな方法は何ですか?
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] なぜpythonはforやwhileループの後に'else'を使うのですか?
-
[解決済み] 例外発生後の再試行方法を教えてください。
-
[解決済み] 前月の日時オブジェクトを返す
-
[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
-
[解決済み] 辞書のキーと値を交換するにはどうすればよいですか?
-
[解決済み] Django 1.7で初期マイグレーションからマイグレートバックする方法は?
-
[解決済み] Pythonで、ウェブサイトが404か200かを確認するためにurllibをどのように使用しますか?
-
[解決済み] Django filter queryset __in for *every* item in list
-
[解決済み] Pythonでリストが空かどうかをチェックする方法は?重複
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?