Maison  >  Article  >  développement back-end  >  Introduction à l'asynchrone et à la coroutineisation du développement du site Web Tornado en Python

Introduction à l'asynchrone et à la coroutineisation du développement du site Web Tornado en Python

不言
不言avant
2018-10-19 17:21:462451parcourir
Cet article vous présente une introduction au développement asynchrone et coroutine des sites Web Tornado en Python. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Tornado dispose de deux manières pour modifier le processus de synchronisation :

Asynchrone : utilisez le décorateur @tornado.web.asynchronous pour la fonction de traitement RequestHandler afin de modifier le mécanisme de synchronisation par défaut. Passer en asynchrone mécanisme. Cette méthode a expiré.

Coroutineisation : utilisez le décorateur @tornado.gen.coroutine pour la fonction de traitement RequestHandler afin de remplacer le mécanisme de synchronisation par défaut par le mécanisme de coroutine.

1. Asynchronisation

Cette méthode a expiré et ne sera plus décrite. Utilisez directement @tornado.gen.coroutine.

2. Coroutineisation

La coroutine Tornado combine les avantages du traitement synchrone et du traitement asynchrone, rendant le code clair et facile à comprendre, et peut s'adapter à la vitesse élevée. traitement de clients massifs.

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()

Les points techniques clés de la coroutine sont les suivants :

  • Utilisez tornado.gen.coroutine pour décorer le get de MainHandler ( ) , post() et d'autres fonctions de traitement.

  • Utilisez des objets asynchrones pour gérer des opérations chronophages, comme AsyncHTTPClient dans cet exemple.

  • Appelez le mot-clé rendement pour obtenir le résultat du traitement de l'objet asynchrone.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer