2010-10-01 2 views
5

Я добавляю Resque-Scheduler в мое приложение на HerokuResque Scheduler на Heroku ... Сделайте это дистанционно?

Так ... Мне нужно только одного и отчетливое работник, действующий в качестве планировщика и многие делают рабочие места.

Это, как я сделал это:
Я отчетливый Heroku приложение, которое ничего не делает, но имеет 1 спасательное-планировщик рабочего, работает 24/7, добавив Resque задачи в Redis БД из " удаленный "основной App.

(я делаю это отображение работы: работа задача спасательное: планировщик или Resque: работа)

Это лучший способ сделать это на платформе Heroku в; или я делаю это совершенно неправильно?

Спасибо!

EDIT: минимальное приложение для планирования на Heroku: http://github.com/clmntlxndr/heroku-scheduler

UPDATE: С новым стеком КЕДР на Heroku и Procfiles, можно начинать отдельную задачу для каждого работника.

web:  bundle exec rails server -p $PORT 
scheduler: bundle exec rake resque:scheduler 
worker:  bundle exec rake jobs:work 

http://devcenter.heroku.com/articles/procfile

ответ

3

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

Да, я думаю, что единственный способ сделать это - иметь два отдельных приложения heroku, потому что работники героику будут работать только с rake jobs:work и, предположительно, вы можете отобразить это только на одну из задач рекреационной грабли.

Вы можете попробовать это:

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

Но у меня есть искренние сомнения, что на самом деле работает должным образом с тем, как Heroku отслеживает рабочие процессы и прочее. Кроме того, дважды проверьте синтаксис рейка; это просто из памяти. Я знаю, что можно указать несколько зависимостей.

+0

Да! То, как я описываю в моем вопросе, уже почти отлично работает (я скоро поставлю его на Github). Мне просто интересно, хорошо ли это в принципе, и ждать, пока кто-то скажет мне «Остановитесь! Вы можете назначить отдельного работника по отдельной задаче, выполняющей это: ...» :) –

+0

Да, конечно, нет никакого способа сделай это. – tfe

+0

FYI: https://github.com/clmntlxndr/heroku-scheduler –

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