8

我在使用 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
4

1 回答 1

8

您提供给我们的日志包含:

工人=0 产卵

将响应您的 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

设置preload_app配置提供了对此行为的一些控制。

于 2013-10-16T15:41:11.903 回答