Heim > Backend-Entwicklung > Python-Tutorial > 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

不言
Freigeben: 2018-10-19 17:22:26
nach vorne
2492 Leute haben es durchsucht
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()
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage