2014-07-22 104 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',因为我执行了一些异步任务。那么没有更多的挂起。