1. 程式人生 > >把flask和tornado同時整合到一個專案中,在同一個程序中運用起來

把flask和tornado同時整合到一個專案中,在同一個程序中運用起來

單獨把flask和tornado運用起來的例子非常多,可以網上搜索下有很多,這裡就不贅述了。

我想了一種方案就是把flask和tornado同時整合在一個工程中,在同一個程序中跑起來。

我的方案是flask按正常的流程執行起來。

flask 在主執行緒中這樣跑:

from app import app
app.debug = True                                             
app.run(host='0.0.0.0',port=5000)    #這樣用來監聽所有的ip,團隊除錯用

tornado用一個執行緒封裝後執行:

class WSServer(threading.Thread):
    def 
__init__(self): threading.Thread.__init__(self) self.wsapp = tornado.web.Application( handlers=[ (r"/", IndexHandler) ] ) def run(self):
self.wsapp.listen(6000)
        tornado.ioloop.IOLoop.instance().start()

-------------------------------------------------------------------------------------------------------------------

這樣執行後發現fork了兩個程序出來,一個是flask的5000,另一個是tornado的6000

我感到非常的疑惑,後來找了很久最終找到了原因。

原因是DEBUG模式下flask開多一個執行緒來監視專案的變化。

如果你想要避免載入兩次,應該設定app.run(debug=True, use_reloader=False)