psycopg2 错误: 数据库错误: 错误,libpq 没有消息



我有一个应用程序,可以将csv文件中的数据解析并加载到Postgres 9.3数据库中。 在串行执行中,插入语句/游标执行工作没有问题。

我在混合中添加了芹菜,以添加并行解析和插入数据文件。 解析工作正常。但是,我去运行插入语句,我得到:

[2015-05-13 11:30:16,464:  ERROR/Worker-1] ingest_task.work_it: Exception
Traceback (most recent call last):
File "ingest_tasks.py", line 86, in work_it
rowcount = ingest_data.load_data(con=con, statements=statements)
File "ingest_data.py", line 134, in load_data
ingest_curs.execute(statement)
DatabaseError: error with no message from the libpq

我在多处理engine.execute()时遇到了类似的问题。我最终解决了这个问题,只需在子进程应该进入的函数下的第一行中添加engine.dispose(),如官方文档所示:

当程序使用多处理或fork(),并且Engine对象是 复制到子进程,应调用Engine.dispose()以便 引擎会在该分叉的本地创建全新的数据库连接。数据库 连接通常不会跨进程边界传输。

相关内容

  • 没有找到相关文章

最新更新