请求-python tornado4.0.2 异步问题

问题描述

python tornado4.0.2 异步问题

用tornado时,每个请求sleep5秒,异步的方式,但是从浏览器测试没有出现异步的效果,哪位大侠知道呢

class IndexHandler(tornado.web.RequestHandler):
@tornado.web.asynchronous
@tornado.gen.coroutine
def get(self):
print("begin")
#yield tornado.gen.Task(tornado.ioloop.IOLoop.instance().add_timeout, time.time() + 5)
yield gen.Task(IOLoop.instance().add_timeout, IOLoop.instance().time() + 5)
? print("after")
? greeting = self.get_argument('greeting', 'Hello')
? self.write(greeting + ', friendly user!')
? self.finish()

        if __name__ == "__main__":
                tornado.options.parse_command_line()
                app = tornado.web.Application(handlers=[(r"/", IndexHandler)])
                http_server = tornado.httpserver.HTTPServer(app)
                http_server.listen(options.port)
                tornado.ioloop.IOLoop.instance().start()

解决方案

浏览器是用的ajax异步方式请求的吗,不然Javascript就是串行化

解决方案二:

开多个窗口可以看出效果,两次出结果中间间隔肯定少于5s
其实直接使用apache的ab 并发100看看结果就知道了

时间: 2024-08-03 03:12:00

请求-python tornado4.0.2 异步问题的相关文章

Python通过poll实现异步IO的方法

  本文实例讲述了Python通过poll实现异步IO的方法.分享给大家供大家参考.具体分析如下: 在使用poll()后返回轮询对象,该对象支持以下方法: pollObj.register(fd,[,eventmask])第一个参数是注册新的文件描述符fd,fd要么是一个整数文件描述符,要么可以带有一个获取文件描述符的fileno()方法的对象.eventmask是一些按位或标记,这些标记指示要处理的事件. POLLIN: 用于读取数据 POLLPRI: 用于读取紧急数据 POLLOUT: 准备

ASP.NET 2.0的异步页面刷新

asp.net|刷新|页面|异步 ASP.NET 2.0的异步页面刷新功能真得很酷,今天尝试用它解决我的一个应用问题,真是帮了大忙了. 我的页面要向后台的socket服务提交一个查询,首先这是一个可能长时间不返回的操作:其次为了拿到socket服务返回的长度不定.有可能很大的Response数据,我不得不采用了dotNET的IAsyncResult BeginReceive(byte[] buffer, int offset, int size, SocketFlags socketFlags,

ASP.NET 2.0的异步页面刷新真给劲

asp.net|刷新|页面|异步 ASP.NET 2.0的异步页面刷新功能真得很酷,今天尝试用它解决我的一个应用问题,真是帮了大忙了. 我的页面要向后台的socket服务提交一个查询,首先这是一个可能长时间不返回的操作:其次为了拿到socket服务返回的长度不定.有可能很大的Response数据,我不得不采用了dotNET的IAsyncResult BeginReceive(byte[] buffer, int offset, int size, SocketFlags socketFlags,

Python通过select实现异步IO的方法

  本文实例讲述了Python通过select实现异步IO的方法.分享给大家供大家参考.具体如下: 在Python中使用select与poll比起在C中使用简单得多.select函数的参数是3个列表,包含整数文件描述符,或者带有可返回文件描述符的fileno()方法对象.第一个参数是需要等待输入的对象,第二个指定等待输出的对象,第三个参数指定异常情况的对象.第四个参数则为设置超时时间,是一个浮点数.指定以秒为单位的超时值.select函数将会返回一组文件描述符,包括输入,输出以及异常. 在lin

Python基于smtplib实现异步发送邮件服务

  这篇文章主要介绍了Python基于smtplib实现异步发送邮件服务,需要的朋友可以参考下 基于smtplib包制作而成,但在实践中发现一个不知道算不算是smtplib留的一个坑,在网络断开的情况下发送邮件时会抛出一个socket.gaierror的异常,但是smtplib中并没有捕获这个异常,导致程序会因这个异常终止,因此代码中针对这部分的异常进行处理,确保不会异常终止. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

python 3.0文件输入出错?

问题描述 python 3.0文件输入出错? 下面是python2版本的代码,移到3上出错了,好像是文件读取的问题请高手指点,万分感谢 解决方案 2和3编译器语法有些许不同 解决方案二: 语法改变很多 需要根据错误修改

【翻译】基于 Create React App路由4.0的异步组件加载(Code Splitting)

基于 Create React App路由4.0的异步组件加载 本文章是一个额外的篇章,它可以在你的React app中,帮助加快初始的加载组件时间.当然这个操作不是完全必要的,但如果你好奇的话,请随意跟随这篇文章一起用Create React App和 react路由4.0的异步加载方式来帮助react.js构建大型应用. 代码分割(Code Splitting) 当我们用react.js写我们的单页应用程序时候,这个应用会变得越来越大,一个应用(或者路由页面)可能会引入大量的组件,可是有些组

A Byte of Python(简明Python教程) for Python 3.0 下载

A Byte of Python v1.92 (for Python 3.0) 官方下载地址,当前(20120730)  最新版本 1.92 基于Python3的 下载: http://files.swaroopch.com/python/byte_of_python_v192.pdf在线阅读:http://www.cnblogs.com/txw1958/archive/2012/12/10/A_Byte_of_Python3.html 简明Python3教程<A Byte of Python3

Python milter 0.9.5发布 Python应用程序接口

Python milter是一款提供了Python应用程序接口到Sendmail的libmilter.Milter可以在同一台或不同机器上运行sendmail,甚至可以运行在不同的操作系统或处理器上.Sendmail通过本地或网络socket来连接milter,并保持事件通知来作为邮件连接处理.在任何时候,milter可以通过命令sendmail来接受.拒绝或放弃该信息,从而来削减通话.接收来自sendmail的一个完整的消息后,Milter可以再次拒绝或放弃它,但它也可以接受它的标题或内文的变