2014-07-22 63 views
5

我運行一個燒瓶web服務器,它在測試過程中工作正常,但現在每天凍結至少一次。我需要做的就是重新啓動它,它會再次工作。有沒有一種好的方法來監視它,也許我應該在每次失敗時都殺死/重新啓動它。人們是否會定期殺死他們的Web服務器以避免這種事情發生?Python燒瓶web服務器停止響應

+0

您是否在部署中使用flask web服務器? –

+3

擴展Bartosz的問題:使用燒瓶內置的默認Web服務器僅用於開發 - 它不適合生產。要部署瓶子應用程序,您需要一個更好的WSGI服務器。請參閱文檔:http://flask.pocoo.org/docs/deploying/ – Daniel

+0

它是我的燒瓶web應用程序。我基本上啓動它並讓它運行。我沒有使用其他任何東西(ngix,apache)。 –

回答

3

如果您使用的是默認的Flask webserver:不要。它僅用於開發。

隨着更多的資源很值得一讀有關部署的燒瓶中的應用這兩個博客文章:

http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xvii-deployment-on-linux-even-on-the-raspberry-pi http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xviii-deployment-on-the-heroku-cloud

併爲您的Web服務器的監控流程,你可以給Watchy一試:

http://redbrain.github.io/watchy/

2

雖然默認的Web服務器可能不是最適合生產的,但它可能不是根本原因崩潰。我在內部網絡的生產環境中使用它,它非常穩定。在指責Web服務器之前,請檢查以確保您的代碼可以處理可能會相互衝突的請求。就我而言,在開始鎖定數據庫表之前,我遇到了很多的穩定性問題,以致某些請求會被阻塞,直到先前的請求已完成更新。 Flask不能確保你的代碼是線程安全的。如果沒有,更改Web服務器將無濟於事。

0

在我的情況下,我需要將worker_class從'sync'更改爲'gevent',因爲我執行了一些異步任務。那麼沒有更多的掛起。