在使用unicorn启动rails应用程序时,我看到以下语句,它做了什么以及如何避免这种情况:
I, [2013-03-28T06:46:05.060194 #1762] INFO -- : worker=0 spawning...
I, [2013-03-28T06:46:05.066834 #2137] INFO -- : worker=0 spawned pid=2137
I, [2013-03-28T06:46:05.067210 #2137] INFO -- : Refreshing Gem list
答案 0 :(得分:7)
您向我们提供的日志包含:
将回复您的HTTP请求的工作人员作为一个单独的进程生成,其中pid 2137 。
根据Unicorn官方文档(http://unicorn.bogomips.org/SIGNALS.html),Gem集按顺序重新加载,因此“应用程序的更新代码可以获取新安装的RubyGems”
查看源代码,每当构建应用程序时都会调用消息“Refreshing Gem list”:
def build_app!
if app.respond_to?(:arity) && app.arity == 0
if defined?(Gem) && Gem.respond_to?(:refresh)
logger.info "Refreshing Gem list"
Gem.refresh
end
self.app = app.call
end
end
end
没有可配置的方法来避免这种情况,除非你想要修补这个方法,以防止Gem重新加载宝石。