独角兽在Heroku上的持续收割

3

从Thin迁移到Unicorn。在我的开发机(Mac OSX)上,Unicorn运行良好,但在Heroku上失败,不断出现以下消息(不同的PID,0到2之间的不同工作进程号)reaped #<Process::Status: pid 564 exit 1> worker=0。日志中没有其他消息指示问题所在。这条消息表示什么,我该如何解决问题?

Procfile:
  web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb

Unicorn.rb:
  worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3)
  timeout 15
  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 sent QUIT'
    end

    defined?(ActiveRecord::Base) and
      ActiveRecord::Base.establish_connection
  end

我遇到了相同的问题..你找到解决方案了吗?下面blotto的建议对我没有用。 - Jonathon Batson
看起来解决了(我尝试了很多方法),是将“preload_app true”这一行注释掉。如果这个方法对你有用,让我知道,我会将其作为正式答案。 - Jack R-G
1个回答

0

非常抱歉回复晚了,如果还未解决问题,您可以尝试以下方法,请确保在Heroku上正确设置了`RAILS_ENV1`。

 web: bundle exec unicorn -p $PORT -E $RAILS_ENV -c ./config/unicorn.rb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接