使用Python并发地将数据加载到Neo4j- asyncio函数被阻止

bvjveswy  于 2022-11-05  发布在  Python
关注(0)|答案(1)|浏览(161)

我有一段代码可以读取一个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()
iqih9akk

iqih9akk1#

我最终使用了支持异步的neo4j python驱动程序版本5alpha。下面是我对pyingest repo的派生:https://github.com/cuneyttyler/pyingest

相关问题