postgresql 如何使用psycopg设置客户端查询执行超时?

h7wcgrx3  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(142)

psycopg是否有客户端套接字/查询超时设置?我想限制查询执行时间,以便针对正在经历中断的数据库运行的查询将超时而不是无限期地运行。我需要客户端机制而不是服务器端机制,以便即使数据库正在经历中断,也可以切断查询。如果没有套接字超时设置,有没有其他方法可以让我有这种行为?
使用statement_timeout或Postgres的pg_cancel_backend函数取消来自另一个线程的查询对我来说不是有效的解决方案,因为它们都是服务器端的设置/操作。如果数据库正在经历中断,它将无法强制执行statement_timeout设置或接受pg_cancel_backend调用。
我看了psycopg和PEP 249的文档,没有找到任何设置套接字超时的方法。我有一些JDBC驱动程序的经验,JDBC接口定义了一个setNetworkError方法来实现这个功能。为什么PEP 249没有一个等效的方法?

相关问题