为啥代码更改时自动重新加载仅用于使用 Gunicorn 进行调试?

Posted

技术标签:

【中文标题】为啥代码更改时自动重新加载仅用于使用 Gunicorn 进行调试?【英文标题】:Why is auto-reload on code change only for debugging with Gunicorn?为什么代码更改时自动重新加载仅用于使用 Gunicorn 进行调试? 【发布时间】:2016-08-26 18:53:57 【问题描述】:

我正在使用Gunicorn 在生产中运行我的Flask 网站。一切正常,但是在部署更新时,我总是停止并重新启动服务器。我现在读到了这个reload flag,它“在代码更改时重新启动工作人员”,根据文档是“用于开发”。如果我可以在生产中使用它,它将避免在部署时停止并重新启动 gunicorn。

我不应该在生产中使用自动重新加载的原因是什么?

【问题讨论】:

你不需要重新启动 kill -HUP 很好地完成了这项工作 【参考方案1】:

reload 标志可以在生产环境中使用,基本上它与您在重新启动 gunicorn 时手动执行的操作相同。

在生产中不使用自动重启的基本原因是您正在损害服务对第三方的可靠性,而您无法控制。

想象一下,您的服务会不断更新新代码。其中一些可能是错误的并破坏了用户体验,您将无法阻止它。另一方面,如果您在一天内多次更新应用,您的用户可能会在一天内多次丢失数据/体验不佳。

【讨论】:

以上是关于为啥代码更改时自动重新加载仅用于使用 Gunicorn 进行调试?的主要内容,如果未能解决你的问题,请参考以下文章

为啥使用 Docker 容器的 NextJS 在更改开发环境的代码后没有重新加载?

在文件更改时自动重新编译和重新加载服务器

如何自动重新加载我的 gunicorn 服务器?

当我在 Chrome 中保存对 html 文件的更改时自动重新加载浏览器?

为啥当我更改静态文件并重新加载页面时 spring devtools 不起作用?

IPython中模块的自动重新加载[重复]