如何使用 Python 客戶端設置 SQL 查詢超時機制?

如何使用 Python 客戶端設置 SQL 查詢超時機制?

python 客戶端 sql 查詢超時機制

在使用 orm 框架(例如 django orm、peewee 或 sqlalchemy)、驅動庫(例如 pymysql)、web 框架(例如 fastapiflask 或 django),以及服務器(例如 uvicorn 或 gunicorn)時,如何實現 sql 查詢超時終止?

例如,使用 uvicorn、fastapi、peewee 和 pymysql 時,某些 sql 查詢可能需要很長時間才能完成。但是,這樣做存在潛在的安全風險。我們需要設置一個查詢時間上限,以防止單個 sql 查詢的運行時間超過預期值。

以下是實現此目的的優雅解決方案:

立即學習Python免費學習筆記(深入)”;

pymysql

pymysql 提供了以下參數來設置超時:

  • “connection_timeout”: 指定與數據庫建立連接的超時時間(以秒為單位)。
  • “read_timeout”: 指定從數據庫讀取數據時使用的超時時間。
  • “write_timeout”: 指定向數據庫寫入數據時使用的超時時間。

例如,以下代碼將設置所有超時時間為 60 秒:

import pymysql  connection = pymysql.connect(     connection_timeout=60,     read_timeout=60,     write_timeout=60, )

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享