Heim  >  Artikel  >  Backend-Entwicklung  >  Eine Einführung in Asynchronität und Koroutineisierung bei der Entwicklung von Tornado-Websites mit Python

Eine Einführung in Asynchronität und Koroutineisierung bei der Entwicklung von Tornado-Websites mit Python

不言
不言nach vorne
2018-10-19 17:21:462452Durchsuche
Dieser Artikel bietet Ihnen eine Einführung in die asynchrone und koroutinene Entwicklung von Tornado-Websites. Ich hoffe, dass er für Freunde hilfreich ist.

Tornado bietet zwei Möglichkeiten, den Synchronisierungsprozess zu ändern:

Asynchron: Verwenden Sie den Dekorator @tornado.web.asynchronous für die RequestHandler-Verarbeitungsfunktion, um den Standardsynchronisierungsmechanismus auf asynchron zu ändern Mechanismus. Diese Methode ist abgelaufen.

Koroutineisierung: Verwenden Sie den @tornado.gen.coroutine-Dekorator für die RequestHandler-Verarbeitungsfunktion, um den Standardsynchronisationsmechanismus in den Coroutine-Mechanismus zu ändern.

1. Asynchronisierung

Diese Methode ist abgelaufen und wird nicht erneut beschrieben.

2. Coroutineisierung

Tornado-Coroutine kombiniert die Vorteile der synchronen Verarbeitung und der asynchronen Verarbeitung, macht den Code klar und leicht verständlich und kann sich an die hohe Geschwindigkeit anpassen Verarbeitung großer Kundenanfragen.

Code:

import tornado.web
import tornado.httpclient
from tornado.web import Application
import tornado.ioloop
class MainHandler(tornado.web.RequestHandler):


    @tornado.gen.coroutine
    def get(self):
        http=tornado.httpclient.AsyncHTTPClient()
        response=yield http.fetch("http://www.baidu.com")
        self.write(response.body)

if __name__ == '__main__':
    app=Application([
        ("/",MainHandler)
    ])
    app.listen("8888")
    tornado.ioloop.IOLoop.current().start()

Die wichtigsten technischen Punkte von Coroutine sind wie folgt:

  • Verwenden Sie tornado.gen.coroutine, um get() und von MainHandler zu dekorieren post() und andere Verarbeitungsfunktionen.

  • Verwenden Sie asynchrone Objekte, um zeitaufwändige Vorgänge abzuwickeln, wie in diesem Beispiel den AsyncHTTPClient.

  • Rufen Sie das Schlüsselwort yield auf, um das Verarbeitungsergebnis des asynchronen Objekts zu erhalten.

Das obige ist der detaillierte Inhalt vonEine Einführung in Asynchronität und Koroutineisierung bei der Entwicklung von Tornado-Websites mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen