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

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

访问:Pastie

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

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

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

【问题讨论】:

    标签: python postgresql multiprocessing psycopg2 web.py


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-05
      • 1970-01-01
      • 2013-08-04
      • 2012-05-11
      • 2016-12-11
      • 1970-01-01
      • 2011-12-06
      • 2013-10-25
      相关资源
      最近更新 更多