Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pg.InternalError:SSL系统调用错误:检测到EOF_Python_Postgresql_Asynchronous_Multiprocessing_Pgdb - Fatal编程技术网

Python pg.InternalError:SSL系统调用错误:检测到EOF

Python pg.InternalError:SSL系统调用错误:检测到EOF,python,postgresql,asynchronous,multiprocessing,pgdb,Python,Postgresql,Asynchronous,Multiprocessing,Pgdb,我有一个python代码,使用多处理和访问数据库。它在大多数情况下工作正常,但有时会产生错误。这个错误最初是错误的 File "/usr/lib/python2.7/multiprocessing/pool.py", line 528, in get raise self._value pg.OperationalError: can't rollback 或 我用来访问数据库的代码是 def getRecords(db,query): cur=db.cursor()

我有一个python代码,使用多处理和访问数据库。它在大多数情况下工作正常,但有时会产生错误。这个错误最初是错误的

File "/usr/lib/python2.7/multiprocessing/pool.py", line 528, in get
    raise self._value
pg.OperationalError: can't rollback

我用来访问数据库的代码是

def getRecords(db,query):
    cur=db.cursor()
    cur.execute(query)
    types=getTypes(cur.description)
    columns=getColumns(cur.description)
    rows=cur.fetchall()
    cur.close()
    try:
        db.commit()
    except:
        db.rollback()
多处理通过以下方式完成:

po = multiprocessing.Pool()
for an_element in a_list:
    for an_object in a_list_of_objects:
        results.append(po.apply_async(the_multiprocessed_function, (an_element, an_object)))               
po.close()
po.join()
for r in results:
    some_function_of(r.get())
我想知道我是否在跨进程共享连接,但是对于每个多进程函数,我创建一个新连接(conn=pgdb.connect(…),然后关闭它(conn.close())

然后,我想知道它是否与我给我的多处理函数的参数有关,特别是因为它们是我自己定义的类实例,但为什么这会在pg中产生错误


对不起,如果我的问题不是很清楚,但我不知道在哪里可以找到错误。多处理在较小的实例和其他表中工作得非常好,并且已经过测试。但是,当在查询中更改一个表并为更大的问题运行代码时,我在某个地方达到了某种极限。

事实上,此错误与多处理无关,而只是与postgresql/pgrouting中计算最短路径的函数有关。如果没有路径连接网络中的两个点,则该函数将断开与数据库的连接,而无需解释。请参阅以了解有关此的更多信息

po = multiprocessing.Pool()
for an_element in a_list:
    for an_object in a_list_of_objects:
        results.append(po.apply_async(the_multiprocessed_function, (an_element, an_object)))               
po.close()
po.join()
for r in results:
    some_function_of(r.get())