[英]Tornado multiple processes: create multiple MySQL connections
我正在使用此處所述的第一種方法跨多個進程運行Tornado HTTPS服務器http://www.tornadoweb.org/en/stable/guide/running.html(server.start(n ))
服務器已連接到本地MySQL實例,我希望每個Tornado進程都具有獨立的MySQL連接。
但是,根據SHOW PROCESSLIST的輸出,現在我只有一個MySQL連接。 我猜是因為我在調用server.start(n)和IOLoop.current()。start()之前建立了連接,對嗎?
我真正不了解的是,調用server.start(n)之后創建的進程是共享某些數據(例如,同一模塊內的全局變量)還是完全獨立的。
我應該在調用server.start(n)之后建立連接嗎? 還是在調用IOLoop.current()。start()之后? 如果這樣做,每個Tornado進程是否會有一個MySQL連接?
謝謝
當調用start(n)
時,每個子進程都會獲得父進程中存在的變量的副本。 對於諸如連接之類的事物,通常會引起問題。 當使用多進程模式時,在啟動子進程之前盡可能少地做是很重要的,因此在start(n)
(但在IOLoop.start()
之前; IOLoop.start()
不會創建mysql連接IOLoop.start()
在服務器停止之前不會返回)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.