2

私はツイストを使用して 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)
4

0 に答える 0