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!