InternalError:当前事务被中止,命令被忽略直到事务块结束

时间:2010-02-05 18:53:25

标签: python postgresql multiprocessing psycopg2 web.py

在使用多处理库的子进程中进行数据库调用时,我收到此错误。

访问:Pastie

  

InternalError:当前事务被中止,命令被忽略直到   交易结束块

这是Postgre数据库,使用psycopg2中的web.py驱动程序。

但是,如果我使用threading.Thread代替multiprocessing.Process,我就不会收到此错误 知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:7)

多处理通过分叉当前进程(在UNIX系统上)工作。如果您有现有的数据库连接,这将使两个进程(当前的新进程和新进程)保持相同的数据库连接。试图从两者中使用它是不好的。而是在子进程中创建一个新的数据库连接。