Asynchronous 具有异步返回的异步tornado服务器
这似乎不起作用,报告错误如下: 第二次自我睡眠(1): TypeError:“Future”对象不可编辑 如何正确实现具有异步返回的异步tornado服务器?非常感谢Asynchronous 具有异步返回的异步tornado服务器,asynchronous,server,tornado,Asynchronous,Server,Tornado,这似乎不起作用,报告错误如下: 第二次自我睡眠(1): TypeError:“Future”对象不可编辑 如何正确实现具有异步返回的异步tornado服务器?非常感谢 class NoBlockingHnadler(tornado.web.RequestHandler): executor = ThreadPoolExecutor(4) @run_on_executor def sleep(self, second): #time.sleep(secon
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()
from tornado.ioloop import IOLoop
def sleep(second):
for i in range(5):
time.sleep(second)
return i
class NoBlockingHnadler(tornado.web.RequestHandler):
async def get(self):
result = await IOLoop.current().run_in_executor(None,sleep,*(1))
for second in result:
print(second)
self.write("noBlocking Request: {}\n".format(second))
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()