10

승객에게서 유니콘으로 이동 한 후 스테이징에 이상한 문제가 있습니다.유니콘이 상쾌한 보석을 말하고 있습니다.

개발 및 준비 환경 모두에서 유니콘을 구성했습니다. 개발 단계에 있지만 작업 준비 단계에 있지는 않습니다. 개발 중에 유닉스 소켓을 청취 할 때 8080을 청취하는 곳. 어떤 차이가 있겠습니까? 특히 생산 환경에서 ENV?

이 내가

  1. 을 준비 그것을 실행할 때
  2. 을 시작 때때로 정착하고 내가 그것을 사용할 수 있어요하면서 거의 100 %의 CPU를 취 일어나는 것이다
  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 

에 왜 보석을 다시 시도 않습니다 볼 것입니다이 문제 click here

에 관한 질문을 기록했다? 설정 파일에서이를 피할 수있는 방법이 있습니까?

이 내가

# 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 

매우 감사 어떤 도움 unicorn_staging.rb/설정에있는 것입니다. 미리 감사드립니다.

+0

혹시 이것을 알아 냈습니까? 나는 같은 문제를 경험했다. – David

+0

이 줄을 제거하고 다소 느리지 만 여전히 느리다. after_fork do | server, worker | ActiveRecord :: Base.establish_connection end –

+0

해당 행을 제거하는 것처럼 보일 때 유니콘 서브 프로세스에서 공유 데이터베이스 핸들과 관련된 문제가 발생합니다. 결국 프리로드 앱으로 데몬 모드에서 유니콘을 돌릴 수 없게되었습니다. 프리로드 앱을 사용 중지하면 문제가 발생하지 않습니다. – David

답변

0

코드에 구문 오류가 없는지 확인하십시오!

내 컨트롤러에서 구문 오류를 수정하여 루프를 종료하고 Unicorn을 올바르게 시작했습니다. 유니콘에서 어떤 오류 메시지도받지 못했습니다. WebRat을 사용하고 오류가 발생하는지 확인하려고 할 수 있습니다.

0

나를 위해 데이터베이스 연결이 올바르게 구성되지 않았습니다. 때로는 콘솔에서이를보고하는 것처럼 보일 때가 있습니다. 때로는 회전 만하는 경우도 있습니다.

관련 문제