Frage

Ich habe Probleme bei der Bereitstellung auf Heroku.Alles funktioniert gut auf meinem Entwicklungscomputer (ich bin mit Vorarbeiter/Einhorn-zum ausführen der web-worker und hintergrund DelayedJob-Prozess).Jedoch, wenn ich versuche in der Produktion auf Heroku, bekomme ich komische Fehlermeldungen zu logger...

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

Der verwirrende Teil ist, dass er die Fehler-trace alle Edelstein-code...vielleicht ist etwas falsch mit meinem Einhorn / proc-Datei?

Einhorn:

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

Ich kann posten, was sonst noch hilfreich wäre!!!Vielen Dank im Voraus...

War es hilfreich?

Lösung 2

Es stellt sich heraus, dass Heroku derzeit nicht gut mit Rails 3.2 und einer benutzerdefinierten Protokollierung versteht.

Was mein Problem behoben hat - kommentieren Sie Folgendes:

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

Siehe auchhttp://roadcastingadam.com/2012/01/rails320_heroku_and_rails_log_stdout

Andere Tipps

Ich kann nicht sprechen für Ihre Probleme in der Entwicklung, so ist dies eher eine Anregung als eine Antwort (aber es erfordert ein wenig mehr Platz als eine Antwort).

Ich habe Probleme mit Heroku und-Dienste/Edelsteine in der Produktionsumgebung in die Vergangenheit.Was ich empfehlen Sie tun, ist das erstellen einer staging-Umgebung auf Heroku und testen Sie Ihren code dort.Jedoch, Sie sollte test es auf zwei Arten:

  • Vanille-staging-Umgebung, um mit zu beginnen, dann...
  • Fügen Sie die heroku-Dienste ein und testen Sie Ihre Anwendung.

Ich hatte ein Problem mit der Reliquie einmal, wo alles funktioniert in Dev und Staging, aber die Produktion hat überhaupt nicht funktioniert.Stellte sich heraus, dass die version der Reliquie nicht kompatibel war, die die version von Schienen für einige Grund.

Auch mit Bezug auf Ihre Frage, was Heroku-stack betreiben Sie?Sind Sie auf der Cedar-stack oder Bambus?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top