2014-08-21 4 views
6

Я не могу использовать pry с Unicorn, поскольку я когда-нибудь загружаюсь из своего приглашения. Вот краткий обзор:Unicorn & Pry in Rails

В настраиваемого действия в контроллере у меня есть это:

def assign 
    binding.pry 
    end 

Попадая на этот маршрут не является проблемой, и я даже получаю знакомые pry запрос так:

 8: def assign 
    9: 
=> 10: binding.pry 
    11: end 

[1] pry(#<RolesController>)> 

После периода около минуты я получаю это который пинает меня из монтировки строки:

[3] pry(#<RolesController>)> E, [2014-08-21T16:29:01.698472 #4780] ERROR -- : worker=0 PID:4852 timeout (61s > 60s), killing 
E, [2014-08-21T16:29:01.721420 #4780] ERROR -- : reaped #<Process::Status: pid 4852 SIGKILL (signal 9)> worker=0 
I, [2014-08-21T16:29:01.745491 #5109] INFO -- : worker=0 ready 

Есть ли способ не убить процесс в то время как в pry?

ответ

11

я был в состоянии исправить это, изменив свою конфигурацию timeout в моем config/unicorn.rb файл следующим образом:

if ENV["RAILS_ENV"] == "development" 
    worker_processes 1 
    timeout 10000 
else 
    worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3) 
    timeout 15 
    preload_app true 
end 
+1

Не работает для меня :( – Ich

+0

@Ich - Вы 'экспорт RAILS_ENV = 'development'' в вашем '.profile' /' .bash_profile' или что-нибудь еще, что вы (варвары: D) используете? Тогда не забудьте «указать» его: '. ~/.profile' – Volte

+1

Спасибо.' if Rails.env. разработка? 'также может быть использована – Sharagoz

2

Я думаю, что для правильной отладки в разработке вам нужно настроить единорог, а не таймаут в режиме dev. Работник единорога ждет ответа вашего действия контроллера, в которое вы попали, и, следовательно, он не получает ответ в установленном тайм-ауте, процесс уничтожается.

Смежные вопросы