同时使用 Python 将数据加载到 Neo4j - asyncio 函数被阻止

Loading data to Neo4j with Python concurrently - asyncio function is blocked

我有从 json 文件中读取并将其加载到 neo4j 数据库中的代码。因为数据大,所以我想用并发处理来做这个。我决定使用 asyncio 库,但我遇到了问题。在下面的代码中,session.run 函数阻塞了 运行 并且我没有并行性。有没有办法与 neo4j 会话并行?

def json_loading_function():
    ...
    asyncio.run(self.run_all_cqls(process_params), debug=True)

async def run_all_cqls(self, params):
    results = await asyncio.gather(*(self.run_cql(p['driver'], p['session_index'], p['cql'], p['rows_dict']) for p in params))
    return results

async def run_cql(self, session, sessionIndex,cql,dict):
    with self._driver.session(**self.db_config) as session:
        print('Running session %d' % sessionIndex)
        session.run(cql, dict=dict).consume()

我最终使用了具有异步支持的 neo4j python 驱动程序版本 5 alpha。这是我对 pyingest 回购的叉子:https://github.com/cuneyttyler/pyingest