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

Posted

技术标签:

【中文标题】InternalError:当前事务被中止,命令被忽略直到事务块结束【英文标题】:InternalError: current transaction is aborted, commands ignored until end of transaction block 【发布时间】:2011-01-13 15:39:24 【问题描述】:

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

访问:Pastie

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于InternalError:当前事务被中止,命令被忽略直到事务块结束的主要内容,如果未能解决你的问题,请参考以下文章

错误:当前事务被中止,在创建新记录时忽略命令直到事务块结束

如何调试内部错误当前事务被中止,命令被忽略直到事务块结束?

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

DatabaseError:当前事务被中止,命令被忽略直到事务块结束 - 在隐身模式但正常没有错误

Django:通过添加 m2m 导致“当前事务被中止,命令被忽略,直到事务块结束”

DatabaseError:当前事务被中止,在事务块结束之前忽略命令?