Ruby on rails 空转导致Rails应用程序崩溃?

Ruby on rails 空转导致Rails应用程序崩溃?,ruby-on-rails,heroku,unicorn,Ruby On Rails,Heroku,Unicorn,我试图找出Rails应用程序因代码H10而崩溃的原因,但目前还找不到解释 你能帮我找个解释吗 我如何防止将来出现同样的错误 以下是日志中的代码段: ... 2016-01-17T21:54:05.302457+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=www.mysite.com request_id=3510edb8-2f3e-4b61-a88d-7513ae903db6 fwd="84.228.32.7

我试图找出Rails应用程序因代码H10而崩溃的原因,但目前还找不到解释

你能帮我找个解释吗

我如何防止将来出现同样的错误

以下是日志中的代码段:

...
2016-01-17T21:54:05.302457+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=www.mysite.com request_id=3510edb8-2f3e-4b61-a88d-7513ae903db6 fwd="84.228.32.70" dyno=web.1 connect=0ms service=2ms status=200 bytes=1605
2016-01-17T22:29:00.091881+00:00 heroku[web.1]: Idling
2016-01-17T22:29:00.092560+00:00 heroku[web.1]: State changed from up to down
2016-01-17T22:29:00.098060+00:00 heroku[web.1]: State changed from down to starting
2016-01-17T22:29:01.913394+00:00 heroku[web.1]: Starting process with command `bundle exec unicorn -p 11956 -c ./config/unicorn.rb`
2016-01-17T22:29:02.732162+00:00 app[web.1]: I, [2016-01-17T22:29:02.732072 #3]  INFO -- : Refreshing Gem list
2016-01-17T22:29:03.902254+00:00 app[web.1]: Translating routes (default locale: he)
2016-01-17T22:29:04.253291+00:00 app[web.1]: Translating routes (default locale: he)
2016-01-17T22:29:04.302976+00:00 app[web.1]: I, [2016-01-17T22:29:04.302899 #3]  INFO -- : listening on addr=0.0.0.0:11956 fd=9
2016-01-17T22:29:04.369997+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2016-01-17T22:29:04.659682+00:00 heroku[web.1]: State changed from starting to up
2016-01-17T22:29:05.359037+00:00 app[web.1]: Unicorn worker intercepting TERM and doing nothing. Wait for master to sent QUITUnicorn worker intercepting TERM and doing nothing. Wait for master to sent QUIT
Unicorn master intercepting TERM and sending myself QUIT instead
2016-01-17T22:29:05.359041+00:00 app[web.1]: 
2016-01-17T22:29:05.359071+00:00 app[web.1]: 
2016-01-17T22:29:05.359309+00:00 app[web.1]: Unicorn worker intercepting TERM and doing nothing. Wait for master to sent QUIT
2016-01-17T22:29:05.562201+00:00 app[web.1]: I, [2016-01-17T22:29:05.562085 #3]  INFO -- : reaped #<Process::Status: pid 6 exit 0> worker=0
2016-01-17T22:29:05.562310+00:00 app[web.1]: I, [2016-01-17T22:29:05.562251 #3]  INFO -- : reaped #<Process::Status: pid 9 exit 0> worker=1
2016-01-17T22:29:05.562438+00:00 app[web.1]: I, [2016-01-17T22:29:05.562381 #3]  INFO -- : reaped #<Process::Status: pid 12 exit 0> worker=2
2016-01-17T22:29:05.562554+00:00 app[web.1]: I, [2016-01-17T22:29:05.562497 #3]  INFO -- : master complete
2016-01-17T22:29:05.635381+00:00 app[web.1]: I, [2016-01-17T22:29:05.635217 #6]  INFO -- : worker=0 ready
2016-01-17T22:29:05.638904+00:00 app[web.1]: I, [2016-01-17T22:29:05.638616 #9]  INFO -- : worker=1 ready
2016-01-17T22:29:05.636719+00:00 app[web.1]: I, [2016-01-17T22:29:05.636605 #3]  INFO -- : master process ready
2016-01-17T22:29:05.642691+00:00 app[web.1]: I, [2016-01-17T22:29:05.642574 #12]  INFO -- : worker=2 ready
2016-01-17T22:29:06.594700+00:00 heroku[web.1]: Process exited with status 0
2016-01-17T22:33:43.910830+00:00 heroku[web.1]: State changed from up to down
2016-01-17T22:33:57.320083+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2016-01-17T22:34:00.699503+00:00 app[web.1]: Unicorn master intercepting TERM and sending myself QUIT instead
2016-01-17T22:34:00.723242+00:00 app[web.1]: Unicorn worker intercepting TERM and doing nothing. Wait for master to sent QUIT
2016-01-17T22:34:00.711418+00:00 app[web.1]: Unicorn worker intercepting TERM and doing nothing. Wait for master to sent QUIT
2016-01-17T22:34:01.145671+00:00 app[web.1]: I, [2016-01-17T22:34:01.145535 #3]  INFO -- : reaped #<Process::Status: pid 6 exit 0> worker=0
2016-01-17T22:34:01.145769+00:00 app[web.1]: I, [2016-01-17T22:34:01.145711 #3]  INFO -- : reaped #<Process::Status: pid 9 exit 0> worker=1
2016-01-17T22:34:01.259225+00:00 app[web.1]: I, [2016-01-17T22:34:01.246160 #3]  INFO -- : reaped #<Process::Status: pid 12 exit 0> worker=2
2016-01-17T22:34:01.259232+00:00 app[web.1]: I, [2016-01-17T22:34:01.246321 #3]  INFO -- : master complete
2016-01-17T22:34:02.405879+00:00 heroku[web.1]: Process exited with status 0
2016-01-17T23:22:21.878317+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/feeds/articles" host=www.mysite.com request_id=5a1e5028-1175-4c81-a4a2-60960c0f92fe fwd="100.43.85.17" dyno= connect= service= status=503 bytes=
2016-01-17T23:22:26.023560+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/feeds/articles" host=www.mysite.com request_id=74544d24-8f7f-43b7-96a5-5928258fc959 fwd="141.8.143.187" dyno= connect= service= status=503 bytes=
2016-01-17T23:22:29.998272+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/feeds/articles" host=www.mysite.com request_id=ee62e215-e8d9-41e7-9504-8e600d60b822 fwd="100.43.81.154" dyno= connect= service= status=503 bytes=
...

此配置是否会导致H10错误?

这是您最近部署到heroku的新应用程序吗?您运行迁移了吗?确保已在文件中声明所有依赖项。如果您需要从代码中获得一些gem,但它不在gem文件中,那么它将在Heroku中启动时崩溃,即使它在您的本地计算机上工作,因为您可能已经安装了gem,并且它是可用的,但是Heroku不会有它,除非它在gem文件中。出现此错误的端点是
/feeds/articles
开始查看。

这是您最近部署到heroku的新应用程序吗?您运行迁移了吗?确保已在文件中声明所有依赖项。如果您需要从代码中获得一些gem,但它不在gem文件中,那么它将在Heroku中启动时崩溃,即使它在您的本地计算机上工作,因为您可能已经安装了gem,并且它是可用的,但是Heroku不会有它,除非它在gem文件中。出现此错误的端点是
/feeds/articles
开始查看。

这是您最近部署到heroku的新应用程序吗?您是否运行了迁移?这是您最近部署到heroku的新应用程序吗?你运行过迁移吗?diego.greyrobot这个应用程序已经运行了两年多了,这是我第一次注意到这样的Heroku错误代码。这种错误可能一直被我隐藏着。关于你提到的路线,我只复制了前3个错误。任何URL路径都会生成这样的错误,甚至/robots.txt您可以在控制台中运行任何代码吗<代码>heroku运行rails c是。在附加的Heroku控制台中运行代码没有任何问题。但是当我注意到一个问题后,我用“heroku restart-a myapp”重新启动了这个过程,这可能就解决了。diego.greyrobot这个应用已经运行了两年多,这是我第一次注意到这样的heroku错误代码。这种错误可能一直被我隐藏着。关于你提到的路线,我只复制了前3个错误。任何URL路径都会生成这样的错误,甚至/robots.txt您可以在控制台中运行任何代码吗<代码>heroku运行rails c是。在附加的Heroku控制台中运行代码没有任何问题。但是在注意到一个问题后,我用“heroku restart-a myapp”重新启动了这个过程,这可能就解决了。
# config/unicorn.rb

worker_processes Integer(ENV['WEB_CONCURRENCY'] || 3)
timeout Integer(ENV['WEB_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