Domanda

Ho problemi che implementano a Heroku. Tutto funziona bene sulla mia macchina di sviluppo (sto usando Foreman / Unicorn per eseguire il lavoratore web e sfondo processo DelayedJob). Tuttavia quando provo a fare funzionare in produzione su Heroku, ottengo strani errori circa 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>'

La parte di confusione è che la traccia di errore è tutto il codice gioiello ... forse qualcosa di sbagliato con il mio file / proc unicorno?

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

posso postare qualsiasi altra cosa sarebbe utile !!! Grazie in anticipo ...

È stato utile?

Soluzione 2

Risulta che Heroku attualmente non vanno d'accordo con Rails 3.2, e personalizzato di registrazione.

Quello che fissa il mio problema - commentare le seguenti:

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

Si veda anche http://broadcastingadam.com/2012/01/rails320_heroku_and_rails_log_stdout

Altri suggerimenti

Non posso parlare per le questioni relative allo sviluppo, per cui questa è più di una suggestione che una risposta (ma richiede un po 'più spazio di una risposta).

ho avuto problemi con Heroku e servizi / gemme in ambiente di produzione in passato. Quello che vi consiglio di fare è creare un ambiente di staging su Heroku e testare il codice lì. Tuttavia, è opportuno verificare in due modi:

  • Un ambiente vaniglia messa in scena per cominciare poi ...
  • Aggiungi i servizi Heroku uno per uno e testare l'applicazione.

Ho avuto un problema con la Reliquia una volta, dove tutto ha funzionato in Dev e messa in scena, ma la produzione non ha funzionato affatto. Venne fuori che versione di reliquia non era compatibile la versione di Rails per qualche motivo.

Inoltre, per quanto riguarda la tua domanda, cosa Heroku pila sono in esecuzione su? Sei in esecuzione sullo stack cedro o di bambù?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top