2015-06-11 53 views
0

我有一个服务,接收任务,并在完成后实例化一个名为SubmitPy2neo的类,它继承了Thread类,以便在python中使用py2neo将数据插入到我的neo4j数据库。对于每个任务,我创建一个单独的线程来平行并将数据更快地插入neo4j数据库。 但是当事情变成多线程时,我得到这个错误弹出py2neo插入多线程

异常KeyError:(u'http://graphdb_server/db/data/relationship/123123')被忽略。

任何想法如何使用py2neo以多线程方式将这些任务插入到Graph数据库?

的多线程类是以下

class Send_GraphDatabase(threading.Thread): 
    def __init__(self, JobNumber, whois=None, dig=None, hosts=None, extra_field=None): 
     threading.Thread.__init__(self) 
     self.JobNumber = JobNumber 
     self.whois = whois 
     self.dig = dig 
     self.hosts = hosts 
     self.extra_field = extra_field 
    def run(self): 
     gd = GraphDB_Driver(self.JobNumber,self.extra_field) 
     gd.StoreRoot() 
     gd.StoreURLs() 
     gd.externalStoreWappalyzer() 
     gd.StoreFiles() 
     if self.whois: gd.StoreWhois(self.whois) 
     if self.dig: gd.StoreDig(self.dig) 
     if self.hosts: gd.StoreHosts(self.hosts) 

每当一个任务完了我创建这个类的一个实例,并给它job_number这个作业提交到图形数据库

内各存储功能我做类似下面的

n = Node("LABEL", key1=val1,key2=val2) 
self.g.create(n) 

r = Relationship(src, "HAS", n) 
self.g.create_unique(r) 

东西,所以我只是用创建graphdb交互()创建节点和CREATE_独特的创建关系

+0

一些更多的细节和你的班级会有所帮助。 –

+0

@MartinPreusse完成 –

+0

该代码无助于理解错误。 –

回答

0

不要离题,但如果你真的关心neo4j性能,我建议你使用原始密码查询或gremlin。此外,我建议使用neo4j HTTP Rest Endpoint,因为py2neo中存在很多问题