Python Flask 网站服务器停止响应

12 投票
3 回答
11958 浏览
提问于 2025-04-18 14:15

我正在运行一个Flask网络服务器,测试的时候一切都很好,但现在每天至少会卡一次。每次只需要重启一下,它就又能正常工作了。有没有什么好的方法来监控它?或者我是不是应该每次出问题就直接杀掉它再重启?大家真的会定期杀掉自己的网络服务器,以避免这种情况发生吗?

3 个回答

0

在我的情况下,我需要把 worker_class 从 'sync' 改成 'gevent',因为我需要做一些异步的任务。这样就不会再出现卡住的情况了。

3

虽然默认的网络服务器可能不适合用在生产环境,但它可能并不是崩溃的根本原因。我在内部网络的生产环境中使用它,运行得非常稳定。在指责网络服务器之前,先检查一下你的代码是否能处理可能会互相冲突的请求。在我的情况下,之前我遇到了很多稳定性问题,直到我对数据库表进行了锁定,这样某些请求在前一个请求完成更新之前就会被阻止。Flask 不能保证你的代码是线程安全的。如果你的代码本身不安全,换一个网络服务器也没有用。

3

如果你在使用默认的Flask网页服务器:不要这样做。这个服务器只适合用来开发。

另外,关于如何部署Flask应用,看看这两篇博客文章也很有帮助:

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

如果你想监控你的网页服务器的运行情况,可以试试Watchy这个工具:

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

撰写回答