1

在进行滚动重启时,一些服务器仍在运行旧代码,而一些服务器正在使用新代码重新启动。如果您有大量机器/进程,则第一台服务器和最后一台服务器之间可能会有很大的延迟。

当数据库架构发生更改时,这可能会成为问题,例如重命名列、删除表等。这意味着旧代码(例如使用以前的列名或旧表)在滚动重启完成。

我想知道 Django 是否提供任何保证或约定以使其正常工作。根据我自己的观察,在 Django 中添加新模型(表)和新字段(列)时,这似乎不会导致旧代码出现问题,因为旧代码甚至不知道它存在并且不在乎。

Django 中是否有任何最佳实践或约定可以遵循以确保在滚动重启时问题最小化?

4

1 回答 1

1

部署 Django 应用程序有无数种方法——每个 Web 平台堆栈都可能有一组不同的“最佳实践”。也就是说,这12 个因素是现代 Web 应用程序的良好设计原则。

到目前为止,我已经使用以下方法部署了 Django:

  • linux + apache + mod_wsgi
  • linux + nginx + uwsgi

我更喜欢将服务器配置为在我触摸某个文件时重新加载应用程序(通常是一个名为“reload.me”的空白文件)。

以我的经验,这不是问题,这就是为什么您可能找不到太多有关它的信息的原因。

于 2012-05-09T05:54:58.700 回答