phusion乘客是否使用分叉,如果是,在哪里设置after_fork配置?

时间:2014-06-12 09:22:36

标签: ruby-on-rails heroku passenger postgis

phusion passenger是否使用分叉?如果是这样,我应该在哪里设置after_fork配置,as recommended by Heroku for unicorn(re:使用Rails设置PostGIS)?

来自Heroku的文档:

此外,如果在重新建立连接的地方使用了独角兽或任何其他进程分支代码,请确保将适配器覆盖到postgis。例如:

# unicorn.rb
after_fork do |server, worker|
  if defined?(ActiveRecord::Base)
    config = Rails.application.config.database_configuration[Rails.env]
    config['adapter'] = 'postgis'
    ActiveRecord::Base.establish_connection(config)
  end
end

2 个答案:

答案 0 :(得分:2)

是的,Phusion Passenger确实分叉,几乎和Unicorn一样。 Unicorn的默认行为(preload_app off)与Phusion Passenger的“直接产卵”(Phusion Passenger中的默认值)相同。 Unicorn的preload_app on与Phusion Passenger的“智能产卵”相同(默认为Phusion Passenger)。来源:

后者还教你如何安装后叉挂钩。

答案 1 :(得分:0)

Phusion Passenger主要是多进程;企业版可以同时执行多进程和多线程。

我不知道Passenger是否需要after_fork类型的东西,因为它不是Ruby做过程的分叉,但我不是100%肯定那里