4 Stimmen

Asynchrone Aufrufe innerhalb von sockjs-tornado-Methoden

Ich baue einen Server auf sockjs-tornado und frage mich, wie man den asynchronen HTTP-Client von Tornado nutzen kann - oder andere asynchrone Einrichtungen für Tornado wie asyncmongo, tornado-redis usw. Offenbar ist es nicht möglich, den tornado.web.asynchronous & tornado.gen.engine Dekorateure für Zufallsmethoden. Wenn ich also asynchrone Mongo/HTTP/Redis-Aufrufe aus SockJSConnection's on_message() Wie würde ich das tun?

8voto

Joes Punkte 1798

Alles, was Sie tun müssen, ist eine Methode (oder eine Funktion) zu erstellen, die von tornado.gen decorator dekoriert wird

Ein kleiner Überblick zur Veranschaulichung, wie man es machen kann: https://gist.github.com/3708549

Wenn Sie das Beispiel ausführen und die Serverkonsole überprüfen, sehen Sie folgende Ausgabe:

1 - Anfrage stellen

2 - Zurückgegeben von on_message

... leichte Verzögerung ...

3 - Gesendete Daten an den Kunden

Dadurch wird ioloop nicht blockiert und der HTTP-Aufruf erfolgt im Hintergrund.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X