- nebula 版本:2.0.1
- 部署方式:分布式
- 安装方式:RPM
- 硬件信息
- 硬盘 1T x 3
- CPU 16C x 3
- 内存 128G x 3
我需要使用python对nebula进行多次的查询,由于单次查询速度较慢,这里准备使用多线程进行查询,不过当前所使用threadpool方式并没有比单纯的循环方法快出多少,请问有没有正确使用nebula进行多线程查询的方法?
Python代码:
from concurrent.futures import ThreadPoolExecutor
from concurrent import futures
from graph import NebulaGraph # a class of nebula graph
class testclass:
def nebula_lookup_func(self, attribute):
nebula = NebulaGraph.graph
nebula_session = nebula.start_session()
nebula_session.execute("USE graph_space_name")
res = nebula_session.execute("LOOKUP ON {}".format(attribute))
nebula_session.release()
return res
def nebula_multithread_func(self):
res_store = []
attri_list = ["tag1", "tag2"]
with ThreadPoolExecutor(200) as executor:
jobs = []
results = []
for attribute in attri_list:
jobs.append(executor.submit(self.nebula_lookup_func, testclass, attribute))
for job in futures.as_completed(jobs):
result_done = job.result()
results.append(result_done)
for result in results:
res_store.append(result)
return res_store