Question

Je vais avoir des problèmes à Heroku le déploiement. Tout fonctionne bien sur ma machine de développement (j'utilise Foreman / Unicorn pour exécuter le travailleur Web et le processus de DelayedJob d'arrière-plan). Cependant, lorsque je tente de lancer en production sur Heroku, je reçois des erreurs étranges sur enregistreur ...

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>'

La partie confusion est que la trace d'erreur est tout le code de pierres précieuses ... peut-être quelque chose de mal avec mon fichier licorne / proc?

Unicorn:

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

Je posterai tout autre serait utile !!! Merci à l'avance ...

Était-ce utile?

La solution 2

Il s'avère que Heroku ne reçoit pas actuellement le long bien avec Rails 3.2, et l'enregistrement personnalisé.

Quel fixe mon problème - le commentaire suivant:

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

Voir aussi http://broadcastingadam.com/2012/01/rails320_heroku_and_rails_log_stdout

Autres conseils

Je ne peux pas parler pour vos problèmes de développement, c'est donc plus une suggestion qu'une réponse (mais il faut un peu plus d'espace qu'une réponse).

J'ai eu des problèmes avec Heroku et services / pierres précieuses dans l'environnement de production dans le passé. Ce que je vous recommande de faire est de créer un environnement de mise en scène sur Heroku et tester votre code là. Cependant, vous devez le tester de deux manières:

  • Un environnement de mise en scène de la vanille pour commencer puis ...
  • Ajoutez les services de Heroku un par un et tester votre application.

J'ai eu un problème avec Relic une fois où tout a travaillé dans Dev et Mise en scène, mais la production ne fonctionne pas du tout. Est apparu que la version de relique était pas compatible la version de Rails pour une raison quelconque.

En outre, en ce qui concerne votre question, pile Heroku vous utilisez sur? Courez-vous sur la pile de cèdre ou en bambou?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top