0
토네이도가있는 비 차단 API를 작성하려고합니다. 하지만 로컬에서 시도 할 때 첫 번째 요청은 API를 차단합니다. 다른 브라우저를 사용하려고했지만 결과는 같습니다. 토네이도가 비동기 적으로 작동하지 않습니다.
내가 크롬과 파이어 폭스를 열었다. 크롬에 나는 http://localhost:8888/test-first을 가서로드하는 동안 나는 immediatly 파이어 폭스에서 http://localhost:8888/test-second 이동합니다. 다른 하나는 여전히로드하는 동안 나는 파이어 폭스에서 요청을 기대하고는 응답 될 것입니다. 그러나 두 사람 모두 기다리고 있으며 첫 번째 요청이 끝나면 두 사람 모두 끝납니다.
내 코드 및 출력 :
기대 콘솔 출력 :
First request: 2017-11-22 22:23:22.093497
Second request: 2017-11-22 22:23:24.580052
Second answer: 2017-11-22 22:23:25.580509
First answer: 2017-11-22 22:23:37.579263
콘솔 출력
First request: 2017-11-22 22:23:22.093497
First answer: 2017-11-22 22:23:37.579263
Second request: 2017-11-22 22:23:37.580052
Second answer: 2017-11-22 22:23:37.580509
test_first.py :
,import tornado.web
import datetime
class First(tornado.web.RequestHandler):
@tornado.web.asynchronous
async def get(self):
print("First request: " + str(datetime.datetime.now()))
for _ in range(1000000000):
pass
self.set_status(200)
self.write("OK")
self.finish()
print("First answer: " + str(datetime.datetime.now()))
test_second.py :
import tornado.web
import datetime
class Second(tornado.web.RequestHandler):
@tornado.web.asynchronous
async def get(self):
print("Second request: " + str(datetime.datetime.now()))
self.set_status(200)
self.write("OK")
self.finish()
print("Second answer: " + str(datetime.datetime.now()))
app.py :
import tornado
from test_first import First
from test_second import Second
class Application(tornado.web.Application):
def __init__(self):
ENDPOINTS = [
# USERS #
(r"/test-first", First),
(r"/test-second", Second)
]
SETTINGS = {
"debug": True,
"autoreload": True,
"serve_traceback": True,
"compress_response": True
}
tornado.web.Application.__init__(self, ENDPOINTS, SETTINGS)
if __name__ == "__main__":
print("dinliyor...")
Application().listen(8888)
tornado.ioloop.IOLoop.instance().start()