Python Gunicorn 重启问题 ?

作者站长头像
站长
· 阅读数 6

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

回复
1个回答
avatar
test
2024-07-10

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

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

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

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


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

最好加上多副本

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

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容