【发布时间】:2018-05-24 19:57:06
【问题描述】:
龙卷风APP下面有2个端点。 one(/) 很慢,因为它等待 IO 操作,而 other(/hello) 很快。 我的要求是同时向两个端点发出请求。我观察到它只有在完成第一个请求后才需要第二个请求。即使它是异步的,为什么它不能同时处理两个请求? 如何让它同时处理?
编辑:我使用的是 Windows 7,Eclipse IDE
****************Module*****************
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
@tornado.web.asynchronous
def get(self):
self.do_something()
self.write("FINISHED")
self.finish()
def do_something(self):
inp = input("enter to continue")
print (inp)
class HelloHandler(tornado.web.RequestHandler):
def get(self):
print ("say hello")
self.write("Hello bro")
self.finish(
def make_app():
return tornado.web.Application([
(r"/", MainHandler),
(r"/hello", HelloHandler)
])
if __name__ == "__main__":
app = make_app()
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
【问题讨论】:
-
input是一个阻塞函数。您需要像sys.stdin这样的非阻塞替代方案来捕获用户输入。不久前我已经回答了一个类似的问题 - stackoverflow.com/q/49871048/1925257
标签: python python-3.x http web tornado