Я успешно запустил 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