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

不言
Libérer: 2018-10-19 17:22:26
avant
2475 Les gens l'ont consulté
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()
Copier après la connexion

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!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal