Unicorn加载初始化程序

时间:2012-10-27 12:49:52

标签: ruby-on-rails-3 unicorn

我正在从Thin迁移到Unicorn。除了加载特定的Gem包之外,我在大部分网站上都取得了成功。我不认为它是包本身,而是Unicorn如何与Initializer文件交互。

这是我当前的unicorn.rb设置。因为我使用的是Mongoid,所以我没有使用before_fork或after_fork。

worker_processes 3
timeout 30
preload_app true

初始化文件位于/config/initializers/asin.rb

ASIN::Configuration.configure do |config|
  config.secret        = ENV['AMAZON_SECRET']
  config.key           = ENV['AMAZON_KEY']
  config.associate_tag = ENV['AMAZON_TAG']
  config.version       = ENV['AMAZON_VERSION']
end

Rails会自动加载初始化文件中的信息吗?

2 个答案:

答案 0 :(得分:3)

如果您要使用preload_app true ,您的套接字在加载时打开,除非您花时间写{{1},否则您可能会遇到麻烦}和before_fork独角兽钩子。

Unicorn docs on preload_app更详细地讨论了这一点。

  

[预加载]允许在使用写时复制友好的GC时节省内存,但是当主进程在加载时打开并由多个子进程共享套接字等资源时,可能会导致不良事件发生。< / em>的

一般情况下,我建议保留after_fork,直到您确定一切正常。当您准备好优化部署时,您可以考虑采取必要的步骤来预加载应用程序。

答案 1 :(得分:0)

是的。只要你把它放在config/initializers中,它就会被加载。