如何在 Python 的 uvicorn + fastapi + peewee + pymysql 環境中實現 SQL 查詢超時?

如何在 Python 的 uvicorn + fastapi + peewee + pymysql 環境中實現 SQL 查詢超時?

如何在 python 中實現客戶端 sql 查詢超時

在使用 orm(對象關系映射器)或驅動庫時,確保 sql 查詢在指定時間范圍內完成非常重要。為了防止可能的安全漏洞,需要對查詢設置時間上限。

實現這一目的的優雅解決方案是使用以下 pymysql 參數:

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

例如,要在 uvicorn + fastapi + peewee + pymysql 環境中將 sql 查詢超時設置為 60 秒,可以修改連接參數:

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

from peewee import MySQLDatabase  db = MySQLDatabase(...)  db.connect(     connection_timeout=60,     read_timeout=60,     write_timeout=60, )

設置這些參數后,任何 sql 查詢都將受到指定超時時間的限制。超過此時間限制的查詢將引發異常。

這種方法既優雅又有效地實現了 sql 查詢超時,而無需修改 mysql 服務器設置。

以上就是如何在 python 的 uvicorn + fastapi + peewee + py

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