1

Heroku에 배포하는 데 문제가 있습니다. 모든 것은 내 개발 기계에서 잘 작동합니다 (저는 웹 노동자와 백그라운드 DelayedJob 프로세스를 실행하기 위해 Foreman/Unicorn을 사용하고 있습니다). 내가 Heroku가에 생산에 실행하려고하지만 때, 나는Unicorn과 관련된 문제 Heroku에 배포 - 프로덕션 환경 문제에만 해당

app error: undefined method `tagged' for #<Logger:0x00000005aee368> (NoMethodError) 
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.1/lib/rails/rack/logger.rb:14:in `call' 
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.1/lib/action_dispatch/middleware/request_id.rb:22:in `call' 
/app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/methodoverride.rb:21:in `call' 
/app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/runtime.rb:17:in `call' 
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/cache/strategy/local_cache.rb:72:in `call' 
/app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/lock.rb:15:in `call' 
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.1/lib/action_dispatch/middleware/static.rb:53:in `call' 
/app/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.1/lib/rack/cache/context.rb:132:in `forward' 
/app/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.1/lib/rack/cache/context.rb:241:in `fetch' 
/app/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.1/lib/rack/cache/context.rb:181:in `lookup' 
/app/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.1/lib/rack/cache/context.rb:65:in `call!' 
/app/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.1/lib/rack/cache/context.rb:50:in `call' 
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.1/lib/rails/engine.rb:479:in `call' 
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.1/lib/rails/application.rb:220:in `call' 
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.1/lib/rails/railtie/configurable.rb:30:in `method_missing' 
/app/vendor/bundle/ruby/1.9.1/gems/unicorn-4.2.0/lib/unicorn/http_server.rb:530:in `process_client' 
/app/vendor/bundle/ruby/1.9.1/gems/unicorn-4.2.0/lib/unicorn/http_server.rb:604:in `worker_loop' 
/app/vendor/bundle/ruby/1.9.1/gems/unicorn-4.2.0/lib/unicorn/http_server.rb:487:in `spawn_missing_workers' 
/app/vendor/bundle/ruby/1.9.1/gems/unicorn-4.2.0/lib/unicorn/http_server.rb:137:in `start' 
/app/vendor/bundle/ruby/1.9.1/gems/unicorn-4.2.0/bin/unicorn:121:in `<top (required)>' 
/app/vendor/bundle/ruby/1.9.1/bin/unicorn:19:in `load' 
/app/vendor/bundle/ruby/1.9.1/bin/unicorn:19:in `<main>' 

혼란스러운 부분은 오류 추적 모든 보석 코드 ... 내 유니콘 잘못 어쩌면 뭔가 /이다 그것은이다 ... 로거에 대한 이상한 오류를 얻을 수 proc 파일?

유니콘 :

worker_processes 3 # amount of unicorn workers to spin up 
preload_app true 
timeout 30   # restarts workers that hang for 30 seconds 

@delayedjob_pid = nil 

before_fork do |server, worker| 
    @delayedjob_pid ||= spawn("bundle exec rake environment jobs:work QUEUE=immediate") 
end 

after_fork do |server, worker| 
    ActiveRecord::Base.establish_connection 
end 

PROC :

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

내가 도움이 될 것입니다 어떤 다른 게시 할 수 있습니다! 미리 감사드립니다 ...

답변

0

Heroku는 현재 Rails 3.2 및 사용자 정의 로깅을 제대로 수행하지 못하고 있습니다.

#config.log_tags = [:uuid, :remote_ip] 

는 답변을 향한 시작을 또한 http://broadcastingadam.com/2012/01/rails320_heroku_and_rails_log_stdout

+0

당신이 그것을 해결 해줘서 다행입니다. 디버깅 코드 스택 추적을 통해 호환성 문제인지 확인하는 것과 같은 것은 없습니다. / – MunkiPhD

0

저는 개발 문제를 말할 수 없으므로 이것은 답변보다 더 많은 제안입니다 (그러나 답변보다 약간 더 많은 공간이 필요합니다).

이전에는 생산 환경에서 Heroku 및 서비스/보석과 관련된 문제가있었습니다. 내가 추천하는 것은 Heroku에서 준비 환경을 만들고 거기에서 코드를 테스트하는 것입니다. 그러나, 당신은 두 가지 방식으로 테스트해야합니다

  • 다음으로 시작하는 바닐라 스테이징 환경 ...
  • 는 Heroku가 서비스를 하나씩 추가하고 응용 프로그램을 테스트합니다.

Devic과 Staging에서 모든 것이 작동하는 Relic에는 문제가 있지만 제작이 전혀 작동하지 않습니다. relic의 버전이 어떤 이유로 Rails의 버전과 호환되지 않는다는 사실이 드러났습니다.

또한 귀하의 질문에 관해서, 어떤 Heroku 스택을 실행하고 있습니까? Cedar stack이나 Bamboo를 타고 있습니까?

+0

감사를 참조하십시오 : 다음 주석 - 내 문제를 해결 무엇

. 삼나무 더미에있어. 내 응용 프로그램은 과거에 작동 했으므로 모든 것을 정확히 변경 한 내용이 너무 명확하지 않습니다. 오류 추적은 도움이되지 않습니다. 그래서 제가 여기에 있습니다! – Brandon

+0

P. 이것은 Heroku (서비스가 활성화되지 않은)의 "깔끔한"제작 설치입니다. 제 개발 코드가 생산으로 바로 넘어졌습니다. – Brandon

관련 문제