【发布时间】:2017-05-22 09:26:13
【问题描述】:
正在使用的东西:
- 运行 uwsgi 的主管
- uwsgi 启动我的基于 Django 非 rel 1.6 的 ML 应用程序(正在进行 Django 升级)
我正在使用 Uwsgi 启动基于 Django ML 的应用程序。 但不知何故,由于它必须加载大量二进制文件进行初始化,主管重新启动并加载新代码大约需要 20-30 秒。
我怎样才能减少这个时间? 或者有没有其他方法可以运行 Django 应用程序以便在代码更改时快速重新加载?零停机时间?因为如果 Nginx 无法连接到 Django,它将开始抛出 5xx。
【问题讨论】:
-
您的问题暗示了其他要求,而不仅仅是代码重新加载。零停机时间不存在。为了减少停机时间,必须采用特殊的系统架构。它们的复杂性随着停机风险的降低而增加。对于单个 Django 实例,您无能为力。作为初学者,您将需要多个运行故障转移场景的 Django 实例。 nginx 为此提供了有限的功能。但实际上你的问题既不是关于编程,也不是这里有任何简单的解决方案可以作为答案给出。
-
@KlausD。谢谢。但我们已经为我们的一个项目这样做了。我完全同意你的看法。这不是一个关键的环境,我们会付出如此多的努力来建立它。有没有一种方法可以使用 run python manage.py runserver 来保持应用程序正常运行,并且它知道代码已更改并开始提供新代码? python manage.py runserver 确实检测到代码更改,但我想知道它是否会检测到安装的新要求?