[英]Psycopg2 concurrency issue
我正在尝试在多个线程之间共享一个psycopg2连接。 就像在文档中提到的那样,只要在新线程中使用共享连接,就可以通过创建新的光标对象来实现。
def delete(conn):
while True:
conn.commit()
def test(conn):
cur = conn.cursor()
thread.start_new_thread(delete,(conn,))
i = 1
while True:
cur.execute("INSERT INTO mas(taru,s) values (2,%s)",(i,))
print i
i = i +1
conn.commit()
运行后,我得到类似的输出,
1
2
...
98
99
Traceback (most recent call last):
File "postgres_test_send.py", line 44, in <module>
cur.execute("INSERT INTO mas(taru,s) values (2,%s)",(i,))
psycopg2.InternalError: SET TRANSACTION ISOLATION LEVEL must be called before any query
这里发生了什么?
该错误不是最新的psycopg2版本中的:可能已在2.4.2中修复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.