Python 我如何反复使用twisted调用函数而不遇到无限递归问题?

Python 我如何反复使用twisted调用函数而不遇到无限递归问题?,python,twisted,dht,kademlia,Python,Twisted,Dht,Kademlia,我正在使用twisted开发一个P2P应用程序。我试图在DHT中反复搜索特定键,并在值发生变化时将其添加到字典中。代码或多或少地完成了我想要完成的任务,除了在获得新值后仍有多个正在运行的请求。这有时会给我一个运行时错误,说我已经超过了最大递归深度。我如何更改此设置,以便一次只运行一个get请求,但它仍在不断搜索?我以前从未使用过twisted,所以我仍在努力掌握它的窍门 #want this to loop repeatedly looking for new ids def addid(val

我正在使用twisted开发一个P2P应用程序。我试图在DHT中反复搜索特定键,并在值发生变化时将其添加到字典中。代码或多或少地完成了我想要完成的任务,除了在获得新值后仍有多个正在运行的请求。这有时会给我一个运行时错误,说我已经超过了最大递归深度。我如何更改此设置,以便一次只运行一个get请求,但它仍在不断搜索?我以前从未使用过twisted,所以我仍在努力掌握它的窍门

#want this to loop repeatedly looking for new ids
def addid(val,server,key):
    print "Val: ",val
    if val:
        if not val in ids:
            print "new id found"
            valhash = hashlib.sha1()
            valhash.update(str(val))
            newval = valhash.hexdigest()
            ids[val]=newval
            server.set(ids[val], str(val))

    server.get(key).addCallback(addid,server,key)

def bootstrapDone(found, server):
    if len(found) == 0:
        print "Could not connect to the bootstrap server."
        reactor.stop()
    key = hashlib.sha1()
    key.update('specialstring')
    keyhash = key.hexdigest()
    server.get(keyhash).addCallback(addid,server,keyhash)

你有没有可能提供更多的代码?如果没有更多的上下文,很难理解为什么会出现错误。