繁体   English   中英

Psycopg2并发问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM