私はツイストを使用して P2P アプリケーションに取り組んでいます。DHT で特定のキーを繰り返し検索し、値が変更されるたびに辞書に追加しようとしています。コードは、達成したいことを多かれ少なかれ実行していますが、新しい値を取得すると、まだ複数のリクエストが実行されています。これにより、最大再帰深度を超えたことを示す実行時エラーが発生することがあります。これを変更して、一度に 1 つの get リクエストのみを実行するようにするにはどうすればよいですか? 私はツイストを使用したことがないので、まだコツをつかもうとしています。
#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)