python 如何在 client 实现 sql 查询 timeout?

在使用 django orm、peewee、sqlalchemy 等等 orm;pymysql 等驱动库、fastapi、flask、django 等 app;uvicorn、gunicorn 等等 server 的时候,如何实现 sql 查询超过一个 『阈值』之后,timeout 终止?

比如我用 uvicorn + fastapi + peewee + pymysql 等时候,有些 sql 需要的查询时间为 [0,+&) 。但是这样有潜在的安全隐患,我需要设置一个查询时间上限,比如 [0,100), 一个 sql 不能跑超过 100 秒。

有什么办法实现?要求优雅!

只允许在 client 设置,不允许修改 mysql server,因为数据库不是只给你用的。
阅读 2.5k
2 个回答

pymysql 参数
"connection_timeout": 60,
"read_timeout": 60,
"write_timeout": 60,

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题