10

Mam dziwny problem w inscenizacji po migracji do jednorożca od pasażera.Jednorożec wisi mówiąc: Odświeżające klejnoty

Skonfigurowałem jednorożca zarówno dla środowiska programistycznego, jak i zaawansowanego. jego praca nad rozwojem, ale nie w inscenizacji. W trakcie opracowywania podsłuchiwało 8080, w którym stroiła słuchanie gniazda unixowego. Czy to spowoduje jakiekolwiek różnice? Zwłaszcza w produkcji trochę env?

To co się dzieje, kiedy go uruchomić w inscenizacji

  1. zajmuje prawie 100% CPU podczas uruchamiania
  2. czasem osiada i jestem w stanie go używać
  3. * Ale większość razy wisi ** i musiałem go zabić.

Mam zalogowany pytanie dotyczące tej kwestii click here

To co widzę w unicorn.stderr.log

I, [2011-08-26T09:02:53.324286 #5026] INFO -- : unlinking existing socket=/home/krishnaprasad/project_name/tmp/sockets/unicorn.sock 
I, [2011-08-26T09:02:53.324502 #5026] INFO -- : listening on addr=/home/krishnaprasad/project_name/tmp/sockets/unicorn.sock fd=3 
I, [2011-08-26T09:02:53.324860 #5026] INFO -- : Refreshing Gem list 

dlaczego to odśwież klejnotów? jest jakiś sposób, aby tego uniknąć w pliku konfiguracyjnym?

to co mam w config/unicorn_staging.rb

# unicorn_rails -c /config/unicorn_staging.rb -E staging -D 

rails_env = 'staging' 

working_directory "/home/krishnaprasad/Projects/project_name" 
worker_processes 1 
preload_app true 
timeout 90 

rails_root = "/home/krishnaprasad/Projects/project_name" 
listen "#{rails_root}/tmp/sockets/unicorn.sock", :backlog => 2048 

pid "#{rails_root}/tmp/pids/unicorn.pid" 
stderr_path "#{rails_root}/log/unicorn.log" 
stdout_path "#{rails_root}/log/unicorn.log" 

GC.copy_on_write_friendly = true if GC.respond_to?(:copy_on_write_friendly=) 

before_fork do |server, worker| 
    ActiveRecord::Base.connection.disconnect! 
    old_pid = "#{Rails.root}/tmp/pids/unicorn.pid.oldbin" 
    if File.exists?(old_pid) && server.pid != old_pid 
    begin 
     Process.kill("QUIT", File.read(old_pid).to_i) 
    rescue Errno::ENOENT, Errno::ESRCH 
     # someone else did our job for us 
    end 
    end 
end 

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

Każda pomoc jest bardzo ceniona. Z góry dziękuję

+0

Czy kiedykolwiek to rozgryzłeś? Doświadczyłem tego samego problemu. – David

+0

Usunąłem tę linię i okazało się, że działa nieco, ale wciąż jest wolne after_fork do | server, worker | ActiveRecord :: Base.establish_connection end –

+0

Wygląda na to, że usunięcie tej linii spowoduje problemy z udostępnionymi uchwytami bazy danych w podprocesach jednorożca. Ostatecznie nie mogłem uruchomić Unicorn w trybie demona z aplikacją preload. Po wyłączeniu wstępnej aplikacji przestałem powodować problemy. – David

Odpowiedz

0

Upewnij się, że Twój kod jest wolny od błędów składniowych!

Naprawienie błędu składni (w jednym z moich kontrolerów) zakończyło pętlę i poprawnie uruchomiło Unicorn. Nie otrzymałem żadnych komunikatów o błędach w Unicorn, możesz spróbować zacząć korzystać z WebRata i sprawdzić, czy pojawi się błąd.

0

Dla mnie połączenie z bazą danych nie zostało poprawnie skonfigurowane. Wydaje się, że czasami zgłasza to na konsoli, czasami po prostu się kręci.