Проблема с развертыванием Unicorn в Heroku - только проблемы с производственной средой

StackOverflow https://stackoverflow.com/questions/9304620

Вопрос

У меня проблемы с развертыванием в Heroku. Все отлично работает на моей машине разработки (я использую Foreman/Unicorn для запуска веб -работника и процесса FackenedJob). Однако, когда я пытаюсь бежать на производство на 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>'

Стушающая часть состоит в том, что это трассировка ошибки - это весь код GEM ... может быть, что -то не так с моим файлом Unicorn / 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

Я могу опубликовать все, что будет полезно !!! Заранее спасибо...

Это было полезно?

Решение 2

Оказывается, что Heroku в настоящее время плохо ладит с Rails 3.2 и пользовательским журналом.

Что исправило мою проблему - прокомментируйте следующее:

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

Смотрите такжеhttp://broadcastingadam.com/2012/01/rails320_heroku_and_rails_log_stdout

Другие советы

Я не могу говорить за ваши проблемы разработки, так что это скорее предложение, чем ответ (но это требует немного больше места, чем ответ).

У меня были проблемы с Heroku и услугами/драгоценными камнями в производственной среде в прошлом. Что я рекомендую вам сделать, так это создать промежуточную среду на Heroku и протестировать ваш код там. Тем не менее, вы должны проверить его двумя манерами:

  • Внутренняя обстановка для начала с самого начала ...
  • Добавьте сервисы Heroku один за другим и протестируйте свое приложение.

Однажды у меня была проблема с Relic, где все работало в Dev и постановке, но производство вообще не сработало. Оказалось, что версия Relic не совместима, версия Rails по какой -то причине.

Кроме того, что касается вашего вопроса, на каком стеке Heroku вы работаете? Вы работаете на кедровом стеке или бамбуке?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top