是否可以在PQsendQuery之后立即关闭连接?

时间:2019-05-29 13:38:58

标签: python postgresql psycopg2

我遇到的情况是INSERT可能会失败而几乎没有后果,但是有时它也会阻塞一段时间(等待锁),这对于调用者来说是个问题。

一种选择是添加一条语句或锁定超时,但这意味着客户端将等待最多该值,并且一旦达到超时,插入操作就会丢失。

一种可能的选择是异步执行查询(通过PQsendQuery),但是一旦查询被确认,就忽略结果并关闭连接。这样做是否正确地保证了查询最终将被执行(成功或失败),还是关闭连接意味着postgres可能在完成之前放弃了查询?

注意:从技术上讲,我是通过psycopg2异步连接来完成此操作的,因此期望cursor.execute()然后等待connection.poll()返回除POLL_WRITE以外的其他状态。假设以上方法可行,是否会增加担忧?

0 个答案:

没有答案