Bagaimana untuk Mendayakan Sambungan Semula Pelanggan Automatik dalam MySQLdb untuk Sambungan Berterusan dalam Python?

Linda Hamilton
Lepaskan: 2024-11-22 12:06:11
asal
724 orang telah melayarinya

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

MySQLdb: Mendayakan Sambungan Semula Pelanggan Automatik

Dalam Python, perpustakaan MySQLdb menyediakan cara yang mudah untuk berinteraksi dengan pangkalan data MySQL. Satu cabaran biasa ialah mengekalkan sambungan berterusan walaupun gangguan sementara.

Untuk menangani ini, penyelesaian wujud dalam PHP yang melibatkan pilihan MySQL, tetapi pengguna menghadapi kesukaran untuk mereplikasinya dengan MySQLdb.

Penyelesaian :

Kunci untuk membolehkan penyambungan semula automatik dalam MySQLdb terletak pada pembungkusan kaedah cursor.execute().

Kod Python berikut menunjukkan penyelesaian:

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
Salin selepas log masuk

Dalam pendekatan ini, fungsi query() menguruskan sambungan bagi pihak pengguna, memastikan sebarang sambungan yang hilang diwujudkan semula secara automatik.

Atas ialah kandungan terperinci Bagaimana untuk Mendayakan Sambungan Semula Pelanggan Automatik dalam MySQLdb untuk Sambungan Berterusan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan