Erstellen Sie ein 'Mailbox'-Objekt; nehmen wir an, es ist eine Liste. Dies könnte ein Wörterbuch, ein Objekt, eine Datei oder eine Datenbank sein, was immer Sie wollen. Was auch immer für Ihre Anwendung geeignet ist.
Wenn Sie dann Ihre ProcessProtocol
einen Verweis auf die Mailbox übergeben. Wenn relevante Daten eintreffen, self.mailbox.append(relevantData)
.
Übergeben Sie außerdem einen Verweis auf dieses Objekt an Ihre HTTP-Ressource, die auf diese Anfragen antwortet. Dann, in render_GET
, relevantData = self.mailbox.pop()
.
Es gibt keinen magischen Weg, dies in Twisted zu tun. Es hängt von vielen verschiedenen Dingen über Ihre Anwendung ab und von der Art und Weise, wie Sie diese Daten speichern und verwalten wollen, was Twisted ist ausdrücklich nicht zuständig ist.
Die Frage, die Sie hier stellen, läuft eigentlich darauf hinaus: "Ich habe ein Objekt a
(Ihr Prozessprotokoll), und ein Objekt b
(Ihre HTTP-Ressource). Wie erhalte ich a
um eine Methode aufzurufen b
? Diese FAQ taucht in der Twisted-Community in verschiedenen Formen immer wieder auf, aber es ist sehr schwer, eine schöne, wiederverwendbare Antwort darauf zu schreiben, weil jeder denkt, er stelle eine andere Frage.
Was Twisted tut - alle Twisted ist immer ist die Abbildung von Ereignissen außerhalb Ihres Prozesses - Daten, die von Unterprozessen oder aus dem Netz kommen - auf Methodenaufrufe in Ihrem Prozess. Wie Sie die Objekte im Inneren anordnen, wie Sie Verweise zwischen ihnen aufrechterhalten und was Sie mit den Daten tun, die Twisted Ihnen gerade gegeben hat, ist hängt ganz von Ihnen ab . Diese Architektur ist der Grund, warum Twisted so leistungsfähig ist. Wenn Sie gelernt haben, dem Callback den Fehlercode zu entreißen, wird es Zeit für Sie zu gehen :).