ホームページ  >  記事  >  データベース  >  Python での永続的な接続のために MySQLdb で自動クライアント再接続を有効にする方法

Python での永続的な接続のために MySQLdb で自動クライアント再接続を有効にする方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-22 12:06:11737ブラウズ

How to Enable Automatic Client Re-connection in MySQLdb for Persistent Connections in Python?

MySQLdb: クライアントの自動再接続の有効化

Python では、MySQLdb ライブラリは MySQL データベースと対話する便利な方法を提供します。一般的な課題の 1 つは、一時的な中断にもかかわらず接続を継続的に維持することです。

これに対処するために、MySQL オプションを使用するソリューションが PHP に存在しますが、ユーザーは MySQLdb でそれを複製するのが困難に直面しています。

ソリューション:

MySQLdb で自動再接続を有効にする鍵は、cursor.execute() をラップすることにあります。

次の Python コードは、解決策を示しています。

import MySQLdb

class DB:
  conn = None

  def connect(self):
    self.conn = MySQLdb.connect()

  def query(self, sql):
    try:
      cursor = self.conn.cursor()
      cursor.execute(sql)
    except (AttributeError, MySQLdb.OperationalError):
      self.connect()
      cursor = self.conn.cursor()
      cursor.execute(sql)
    return cursor

# Example usage
db = DB()
sql = "SELECT * FROM foo"
cur = db.query(sql)
# Sleep for a long time to simulate connection timeout
time.sleep(60 * 60 * 24)
cur = db.query(sql)
# Connection is still valid and usable

このアプローチでは、query() 関数がユーザーに代わって接続を管理し、失われた接続が確実に再接続されるようにします。自動的に確立されます。

以上がPython での永続的な接続のために MySQLdb で自動クライアント再接続を有効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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