Python Gunicorn 重启问题 ?

项目使用的是 Gunicorn + Flask 的组合,但是在报错之后服务器就挂了也不会自动再重启?Python 作为动态语言不能和 PHP 那样代码挂了并不会导致整个服务器挂掉起不来的能力么?
截屏2023-04-01 10.50.33.png

阅读 3k
2 个回答

分情况,你自己写的业务代码有 bug,当然不会导致 gunicorn 进程挂掉

但是从你这个截图,可以看到,貌似是 werkzueg 挂了,这个就不是业务代码了,gunicorn 可能不帮你处理 werkzueg 的错误

现在 python 后端生态都转成 fastapi+uvicorn了(什么 Django、flask、gunicorn、uwsgi 都是过去时了),uvicorn 用了两年了,从没有遇到过『挂掉』的问题。记得之前 gunicorn 倒是经常挂掉,可能是 gunicorn 本身的鲁棒性太差了

传统的解决方案就是加一个 supervisor 用于健康检查和 restart


如果你用 docker,就用 docker 的 restart:always 功能

最好加上多副本

如果你用 k8s,就用健康检查+多副本

supervisor,再加个心跳检测报警机制

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题