【发布时间】:2013-07-19 18:39:51
【问题描述】:
我的独角兽配置(复制自Heroku's docs):
# config/unicorn.rb
worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3)
timeout 30
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
但是每次重新启动测功机时,我们都会得到:
heroku web.5 - - Error R12 (Exit timeout) -> At least one process failed to exit within 10 seconds of SIGTERM
Ruby 2.0、Rails 3.2、Unicorn 4.6.3
【问题讨论】:
-
您的负载或请求队列很大?还是设置了一些终结器?
-
没有终结器。平均请求队列约为 150 毫秒。
-
我也有同样的问题,找到解决办法了吗?
-
还没有,很遗憾。我可能需要就此联系 Heroku 支持,尽管这很少被证明非常有用。
-
好吧。请告诉我进展如何!
标签: ruby-on-rails heroku unicorn