【问题标题】:Capistrano intervals between restarts of the servers to ensure service continuityCapistrano 间隔重新启动服务器以确保服务连续性
【发布时间】:2016-09-26 16:20:08
【问题描述】:

我知道将更改推送到生产环境的最佳实践是拥有一组服务器 A 和 B,让 A 为客户端服务网站,在 B 上推送更新,然后切换 AB 以确保服务的连续性。但这感觉有点难以用 Capistrano 实现(?)

我目前在亚马逊云上有一个自动缩放的服务器池。使用 capistrano,我的部署命令将在所有服务器上部署更新,并同时重新启动它们。在乘客重新启动期间,我的生产服务器出现停机时间(重新启动可能需要 10 秒,所以这是个问题)。

为了避免这种情况,我想一次重新启动我的服务器,并在重新启动下一个服务器之前等待 x 秒(我不介意在线是否有 2 个不同版本的代码,我想到的目标场景是部署一个小修补程序)

有没有办法覆盖 Capistrano 重启任务,以便在下一个服务器上启动命令之前等待一段时间?

【问题讨论】:

标签: passenger ruby-on-rails-5 continuous-deployment capistrano3 hotfix


【解决方案1】:

这是内置的:

on :all, in: :sequence, wait: 15 do
  # Your restart task
end

【讨论】:

    【解决方案2】:

    我实际上正在使用 Capistrano-Passenger 重新启动我的服务器,我只是注意到有一个 set :passenger_restart_wait, 5 命令似乎已经这样做了!

    From the gem readme

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-04
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多