gpt4 book ai didi

Heroku 与 Unicorn 的零停机部署

转载 作者:行者123 更新时间:2023-12-02 09:46:57 25 4
gpt4 key购买 nike

我想知道 Heroku 是否可以采用零停机部署策略。我发现在当前的 Heroku 文档中,推送应用程序后,需要大约 1 分钟才能重新加载应用程序,这使其无法使用。他们文档中的 unicorn 代码确实预加载了应用程序,所以我很困惑为什么会发生这种情况。我能做点什么吗?

https://devcenter.heroku.com/articles/rails-unicorn

我有新的遗物插件以及用于 Elasticsearch 的盆景。

这是我的 unicorn.rb 初始化程序:

# config/unicorn.rb
worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3)
timeout 15
preload_app true

before_fork do |server, worker|

Signal.trap 'TERM' do
puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
Process.kill 'QUIT', Process.pid
end

defined?(ActiveRecord::Base) and
ActiveRecord::Base.connection.disconnect!
end

after_fork do |server, worker|

Signal.trap 'TERM' do
puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT'
end

defined?(ActiveRecord::Base) and
ActiveRecord::Base.establish_connection
end

最佳答案

2014-11-14 更新:

预启动现已普遍可用(感谢 @camJackson 的帮助)。

变更日志条目:

新的开发中心文章:

<小时/>

原始回复

当前执行此操作的唯一方法是使用预启动实验室功能:

预启动是一项正在进行中的工作

请注意,使用 Unicorn 在这里没有任何影响。该上下文中的预加载是主进程在 fork 工作线程之前预加载 Rails 应用程序;这发生在新的测功机旋转并循环出去之后。

关于Heroku 与 Unicorn 的零停机部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16111844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com