如何優雅地為 Python 客戶端的 SQL 查詢設置超時時間?

如何優雅地為 Python 客戶端的 SQL 查詢設置超時時間?

如何優雅地對 python 客戶端的 sql 查詢設置超時時間?

當使用 django orm、peewee、sqlalchemy 等 orm,以及 pymysql 等驅動庫、fastapiflask、django 等 app,以及 uvicorn、gunicorn 等服務器時,有時需要在超過一定閾值后終止 sql 查詢,以防止安全隱患。

實現方法

為了優雅地實現此目的,可以使用 pymysql 庫的參數:

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

  • connection_timeout: 數據庫連接超時時間(以秒為單位)
  • read_timeout: 數據庫讀操作超時時間(以秒為單位)
  • write_timeout: 數據庫寫操作超時時間(以秒為單位)

示例

在使用 pymysql 時,可以通過設置以下參數來限制 sql 查詢時間:

import pymysql  # 打開數據庫連接 connection = pymysql.connect(     host="localhost",     user="root",     password="password",     database="database_name",     connection_timeout=60,     read_timeout=60,     write_timeout=60, )

通過將 read_timeout 設置為 60 秒,任何超過 60 秒的 sql 查詢都會超時并終止。

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