[英]Flask: Localhost References When Moving from Local Machine to Production Server
[英]Python: moving from dev server to production server
我正在使用bottlepy
框架開發應用程序。 我正在使用標准庫WSGIRefServer()
來運行開發服務器。 它是單線程服務器。
現在,進入生產環境時,我將希望移至多線程生產服務器,並且有很多選擇。 假設我選擇CherryPy。
現在,在我的代碼中,我正在初始化一個wsgi
應用程序。 除此之外,我還在初始化其他內容...
由於標准庫wsgiref
是單線程服務器,並且我只創建了一個wsgi應用程序(可調用wsgi),所以一切正常。
我想知道的是,當我轉移到多線程服務器時,我的wsgi應用程序,初始化代碼,與其他服務器的連接等將如何運行。
多線程服務器將為每個線程創建一個單獨的wsgi應用程序實例。 並且會為每個新請求生成一個新線程(這意味着每個請求都有一個新的wsgi應用程序)嗎?
我與memcached,mongoDB等的連接是否會在線程之間共享。 線程之間還將共享什么
請說明線程服務器的請求-響應周期
通常,您的應用程序使用的是與wsgi兼容的框架,並且您不應該擔心多線程/單線程服務器端。 只要它符合wsgi,它就意味着要透明地工作,並且必須以相同的方式做出反應,而不管它是哪種服務器。
bottle.run()
之前的每個代碼塊將只運行一次。 因此,每個連接(數據庫,memcached)將僅實例化一次並共享。
當您調用bottle.run()
bottlepy將為您啟動wsgi服務器。 對該服務器的每個請求都會在瓶狀框架內觸發一些可調用的wsgi。 只要是單線程或多線程環境,只要您不做任何奇怪的事情,您就不會真正感興趣。
對於奇怪的事,我的意思是例如通過全局變量同步某些東西。 (這里的異常是全局request
對象,對於它,bottlepy確保在適當的上下文中包含正確的請求)。
並響應列表上的第一個問題:可以在新產生的線程或線程池中的線程中計算請求(CherryPy是線程池化的)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.