如何優雅地對 python 客戶端的 sql 查詢設置超時時間?
當使用 django orm、peewee、sqlalchemy 等 orm,以及 pymysql 等驅動庫、fastapi、flask、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