4

使用多处理库在子进程中进行数据库调用时出现此错误。

访问 :馅饼

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

这是一个 Postgre 数据库,psycopg2使用web.py.

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

4

1 回答 1

8

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

于 2010-02-05T19:51:05.300 回答