Python Psycopg`connection.notices`包含属于以前查询而不是最新查询的通知
我在virtualenv中使用Python 2.7.3和Psycopg 2.5.4连接到Debian 7.6 amd64上的PostgreSQL 9.1.13Python Psycopg`connection.notices`包含属于以前查询而不是最新查询的通知,python,sql,postgresql,psycopg2,Python,Sql,Postgresql,Psycopg2,我在virtualenv中使用Python 2.7.3和Psycopg 2.5.4连接到Debian 7.6 amd64上的PostgreSQL 9.1.13 notices我创建的连接对象的属性在它应该包含的PostgreSQL通知中始终是一个或多个查询。在我执行的每个查询(cursor.execute(),conn.commit()和cursor.close())之后,我运行: 但这些通知似乎总是与以前的查询有关。我不确定我的程序中是否有bug,或者Psycopg懒散地获取通知。有时,在一次
notices
我创建的连接对象的属性在它应该包含的PostgreSQL通知中始终是一个或多个查询。在我执行的每个查询(cursor.execute()
,conn.commit()
和cursor.close()
)之后,我运行:
但这些通知似乎总是与以前的查询有关。我不确定我的程序中是否有bug,或者Psycopg懒散地获取通知。有时,在一次查询之后会打印出大量通知,这些通知都与以前的一些查询有关,这让人怀疑psycopg正在随机从服务器批量获取通知
我使用LIPBQXX C++库连接到同一个DB,并且我可以登记处理的通知处理程序,按预期的时间工作。所以问题不可能出在发出通知的DB触发器上
psycopg连接处于隔离级别\u READ\u COMMITTED
和自动提交=False
同步模式
任何有助于解决此问题的建议都将不胜感激。很抱歉,我的代码有错误,由于异常,执行未到达打印通知并从列表中弹出的部分。因此,在没有引发异常的查询之后,它们会堆积起来并打印出来
while conn.notices:
print(conn.notices.pop(0))