единорог висит, говоря освежающие драгоценные камни - PullRequest
10 голосов
/ 26 августа 2011

У меня странная проблема при подготовке после перехода на пассажира с помощью единорога.

Я настроил единорога как для среды разработки, так и для среды подготовки.он работает в разработке, но не в постановке.В разработке он слушает 8080, где, как и в постановке, слушает сокет Unix.Будет ли это иметь какое-либо значение?Особенно в производстве вроде Env?

Это то, что происходит, когда я запускаю его в стадии подготовки

  1. При запуске
  2. он занимает почти 100% процессорного времени, иногда он останавливается, и я могу использовать его
  3. * Но в большинстве случаев он зависает **, и мне приходилось его убивать.

Я записал вопрос по этой проблеме нажмите здесь

Это то, что я вижу в 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

Почему он пытается обновить драгоценные камни?Есть ли способ избежать этого в файле конфигурации?

это то, что я имею в 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

Любая помощь высоко ценится.Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 04 мая 2015

Для меня это было неправильно настроено соединение с базой данных.Кажется, что иногда он сообщает об этом на консоли, иногда просто вращается.

0 голосов
/ 30 апреля 2013

Убедитесь, что в вашем коде нет синтаксических ошибок!

Для меня исправление синтаксической ошибки (на одном из моих контроллеров) завершило цикл и правильно запустил Unicorn.Я не получил никаких сообщений об ошибках в Unicorn, вы можете попробовать начать использовать WebRat и посмотреть, появляется ли ошибка.

...