【发布时间】:2020-01-13 04:51:53
【问题描述】:
class NoBlockingHnadler(tornado.web.RequestHandler):
executor = ThreadPoolExecutor(4)
@run_on_executor
def sleep(self, second):
#time.sleep(second)
#return second
for i in range(5):
time.sleep(second)
yield i
@gen.coroutine
def get(self):
#second = yield self.sleep(1)
#self.write("noBlocking Request: {}".format(second))
for second in self.sleep(1):
print(second)
self.write("noBlocking Request: {}\n".format(second))
self.flush()
self.finish()
def make_app():
return tornado.web.Application([
(r"/noblock", NoBlockingHnadler),
], autoreload=True)
if __name__ == "__main__":
app = make_app()
app.listen(8518)
tornado.ioloop.IOLoop.current().start()
这个好像不行,报错如下,
self.sleep(1) 中的第二个: TypeError: 'Future' 对象不可迭代
如何正确实现异步返回的异步龙卷风服务器?非常感谢。
【问题讨论】:
标签: asynchronous server tornado