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

InternalError: current transaction is aborted, commands ignored until end of transaction block

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

访问:Pastie

InternalError: current transaction is aborted, commands ignored until
end of transaction block

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

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


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