博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tornado的异步效果
阅读量:4677 次
发布时间:2019-06-09

本文共 2131 字,大约阅读时间需要 7 分钟。

第一种方式:import tornado.ioloopimport tornado.webfrom tornado import genfrom tornado.concurrent import Futureimport time #########异步效果1,iploopclass MainHandler(tornado.web.RequestHandler):@gen.coroutine##加一个装饰器def get(self):import time###等待五秒种future=Future()self.write('hello,world ')##五秒钟的超时时间,tornado.ioloop.IOLoop.current().add_timeout(time.time()+5,self.doing)##等待五秒的时间yield futuredef doing(self,*args,**kwargs):self.write('yibu ')self.finish()class IndexHandler(tornado.web.RequestHandler):def get(self):self.write('index') ##下面是路由映射appliaction=tornado.web.Application([(r'/main',MainHandler),(r'/index', IndexHandler),])

 

 

 

 

第二种方式:import tornado.ioloopimport tornado.webfrom tornado import genfrom tornado.concurrent import Futureimport time ######异步效果2,AsyncHTTPClientclass MainHandler(tornado.web.RequestHandler):@gen.coroutine##加一个装饰器def get(self):import timefrom tornado import httpclienthttp=httpclient.AsyncHTTPClient()yield http.fetch('http://www.geogle.com',self.doing )def doing(self,*args,**kwargs):self.write('yibu ')self.finish()class IndexHandler(tornado.web.RequestHandler):def get(self):self.write('index') ##下面是路由映射appliaction=tornado.web.Application([(r'/main',MainHandler),(r'/index', IndexHandler),]) ##settings配置if __name__ == '__main__':appliaction.listen(8000)tornado.ioloop.IOLoop.instance().start()

 

 

第三种方式:import tornado.ioloopimport tornado.webfrom tornado import genfrom tornado.concurrent import Futureimport time#异步效果3,futurefuture=Noneclass MainHandler(tornado.web.RequestHandler):@gen.coroutine##加一个装饰器def get(self):import timeglobal futurefuture=Future()future.add_done_callback(self.doing)#####在这里设置返回值,future,当future里面的result值发生改变的时候就会触发这个的执行yield futuredef doing(self,*args,**kwargs):self.write('yibu ')self.finish()class IndexHandler(tornado.web.RequestHandler):def get(self):global futurefuture.set_result(None)##设置返回值self.write('index') ##下面是路由映射appliaction=tornado.web.Application([(r'/main',MainHandler),(r'/index', IndexHandler),])##settings配置if __name__ == '__main__':appliaction.listen(8000)tornado.ioloop.IOLoop.instance().start()

 

转载于:https://www.cnblogs.com/yunxintryyoubest/p/10007118.html

你可能感兴趣的文章
友盟错误日志分析(转自:COCOACHINA shemy )
查看>>
HDU5336-XYZ and Drops-模拟
查看>>
powershell 查看程序的tcp网络连接
查看>>
C++技术问题总结-第12篇 设计模式原则
查看>>
Spring的事件处理
查看>>
利用Android属性动画实现Banner的原理与实践
查看>>
【MySQL案件】mysql登录-S失败
查看>>
白话经典算法系列之中的一个 冒泡排序的三种实现
查看>>
Eclipse断点调试
查看>>
ubuntu 步步为营之uclinux编译和移植(完整版)
查看>>
取消SVN版本号控制的bash脚本
查看>>
ASP.NET 后台接收前台POST过来的json数据方法
查看>>
Python(简单图形和文件处理)编程
查看>>
C#写点酷玩意,波形图控件
查看>>
MS SQL 批量操作
查看>>
CSRF
查看>>
mysql中创建用户和赋权限
查看>>
(Hive)史上最难解析的json字符串解析出来了!!
查看>>
Linux学习之一--VI编辑器的基本使用
查看>>
Activity启动模式 及 Intent Flags 与 栈 的关联分析
查看>>