我有一段代码可以读取一个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()
1条答案
按热度按时间iqih9akk1#
我最终使用了支持异步的neo4j python驱动程序版本5alpha。下面是我对pyingest repo的派生:https://github.com/cuneyttyler/pyingest