Python Gunicorn 重启问题 ?
项目使用的是 Gunicorn + Flask
的组合,但是在报错之后服务器就挂了也不会自动再重启?Python
作为动态语言不能和 PHP
那样代码挂了并不会导致整个服务器挂掉起不来的能力么?
回复
1个回答
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,就用健康检查+多副本
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容