在網上看到了很多參考等等,但是實際中,我發現大多數都是對不同uri下的handler是不堵塞,但是對同一個handler是堵塞的(包括起了多行程)。不清楚是代碼問題,還是環境配置問題。
貼代碼(python 3.7|tornado == 6.0.3):
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
import tornado.gen
from datetime import datetime
from concurrent.futures import ThreadPoolExecutor
class IndexHandler(tornado.web.RequestHandler):
def get(self):
print('index',str(datetime.now()))
self.write('Index!%s' % str(datetime.now()))
class TestHandler(tornado.web.RequestHandler):
async def get(self):
await tornado.gen.sleep(3)
print(str(datetime.now()))
self.write(str(datetime.now()))
def server_main():
print('Tornado',tornado.version,'server start!')
application = tornado.web.Application(
[
(r"/index", IndexHandler),
(r"/test", TestHandler),
],
debug=True,
)
application.executor = ThreadPoolExecutor(10)
http_server = tornado.httpserver.HTTPServer(application, max_header_size=104857600)
http_server.listen(9999)
http_server.start(1)
tornado.ioloop.IOLoop.current().start()
if __name__ == '__main__':
server_main()
(注:在liunx下,多cpu起多行程(http_server.start(2)),仍然堵塞)
堵塞情況:


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/36717.html
上一篇:tkinter中用label插入多張圖片,但圖片太大,無法顯示完整怎么做?
下一篇:anaconda更新包一直失敗
