Redis и Resque, рабочие не получают обновленный код приложения

У меня здесь тяжелые времена с Resque, во-первых, в разработке, когда я запускаю rake resque:work QUEUE='*' для работы с очередью, он запускается нормально и запускает метод perform для моих воркеров, что нормально; проблема в том, что рабочие процессы, похоже, не запускают мой новый код приложения, скажем, я обновляю метод perform в этом рабочем процессе, затем Ctrl+c из этого процесса rake resque:work QUEUE='*' и запуск его снова, в то время как постановка в очередь новых заданий, над которыми нужно работать, не приводит к тому, что рабочий работает с новым обновленным кодом.

Итак, в основном моя проблема заключается в том, как мне безопасно убить задачу resque:work и перезапустить моих рабочих с новым кодом приложения?


person JP Silvashy    schedule 18.07.2011    source источник


Ответы (1)


Спасатели реагируют на несколько разных сигналов:

QUIT - Wait for child to finish processing then exit
TERM / INT - Immediately kill child then exit
USR1 - Immediately kill child but don't exit
USR2 - Don't start to process any new jobs
CONT - Start to process new jobs again after a USR2

Если вы хотите корректно завершить работу Resque worker, используйте QUIT.

kill -s QUIT reqsue.pid

если вы хотите настроить перезапуск resque с помощью capitrano, используйте этот gits

person Anatoly    schedule 18.07.2011
comment
Отлично, это мне очень помогло! Спасибо. - person JP Silvashy; 18.07.2011