在使用 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,因为数据库不是只给你用的。
pymysql 参数
"connection_timeout": 60,
"read_timeout": 60,
"write_timeout": 60,