Восстановление на стеке кедра Heroku Счетчик рабочих мест все еще существует после завершения рабочего процесса

Я успешно запустил resque на стеке heroku cedar и смонтирую интерфейс на рельсах.

Когда я запускаю рабочий, все работает нормально. Рабочий обрабатывает задание. Но когда я убиваю рабочего, Resque все равно думает, что рабочий доступен. Когда я запускаю другого воркера, он думает, что есть 2 воркера, но на самом деле работает только один.

Я также заметил здесь форму http://devcenter.heroku.com/articles/ps , которая heroku отправляет SIGTERM при убийстве рабочего, и если это не завершается, он отправляет SIGKILL.

вот мои журналы рабочего процесса

2011-08-11T02:32:45+00:00 heroku[worker.1]: Starting process with command `bundle exec rake resque:work QUEUE=*`
2011-08-11T02:32:46+00:00 heroku[worker.1]: State changed from starting to up
2011-08-11T02:33:58+00:00 heroku[worker.1]: State changed from up to stopping
2011-08-11T02:34:00+00:00 heroku[worker.1]: Stopping process with SIGTERM
2011-08-11T02:34:09+00:00 heroku[worker.1]: Error R12 (Exit timeout) -> Process failed to exit within 10 seconds of SIGTERM
2011-08-11T02:34:09+00:00 heroku[worker.1]: Stopping process with SIGKILL
2011-08-11T02:34:11+00:00 heroku[worker.1]: Process exited

Я вижу, что моему процессу требуется более 10 секунд для завершения. Это связано с тем, что я загружаю среду rails в рабочую задачу?

это моя задача rake lib / tasks / resque.rake

require "resque/tasks"

task "resque:setup"  => :environment

5
задан ahmy 11 August 2011 в 04:46
поделиться