Запуск задач rake для запуска рабочих Resque на Heroku

Итак, у меня есть Resque и Redis, которые нужно настроить на Heroku, и вот как выглядит мой файл resque.rake:

require 'resque/tasks'

task "resque:setup" => :environment do
  ENV['QUEUE'] = '*'
end

desc "Alias for resque:work (To run workers on Heroku)"
task "jobs:work" => "resque:work"

Я запустил heroku rake jobs:work и запустил одного рабочего. Это сработало отлично. Мои фоновые задания завершались.

Затем я внес некоторые изменения в свой код, запушил на героку и все равно увидел, что у меня работает один воркер. Однако пока задания добавлялись в очередь, рабочий не получал никаких заданий. Итак, я снова запустил heroku rake jobs:work, он сказал, что у меня работают два рабочих, и мои задания завершаются.

Мой вопрос: почему это произошло? Нужно ли мне запускать эту задачу rake каждый раз, когда я нажимаю на героку? Есть ли способ автоматизировать это? Кроме того, хотя у меня работает два воркера, похоже, работает только один. Есть ли способ вернуться к одному рабочему?


person Justin Meltzer    schedule 16.08.2011    source источник


Ответы (2)


Вы должны использовать Procfile для восстановления заданий на героку http://devcenter.heroku.com/articles/procfile

Имейте в виду, что Procfile используется в новом стеке Heroku Cedar.

person Alexey Zakharov    schedule 30.08.2011

Вам нужен только один рабочий для Resque. Вам нужно будет запустить heroku rake jobs:work или использовать Resque-Scheduler (cron или что-то еще для запуска этой задачи) для автоматического запуска ваших заданий.

person thenengah    schedule 16.08.2011
comment
Хотя это может быть правдой, это не отвечает на мой вопрос - person Justin Meltzer; 17.08.2011