Как ты всегда задерживал работу, бегая по героку? - PullRequest
1 голос
/ 12 ноября 2011

У меня есть приложение на Heroku, выполняющее отложенные задания. Однако в данный момент я должен запустить очередь заданий, запущенную с помощью команды терминала:

heroku rake jobs:work

... но это означает, что когда я закрываю свой терминал, очередь отложенных заданий приложения тоже закрывается.

Можно ли заставить Heroku всегда запускать и запускать отложенные задания в фоновом режиме при запуске приложения? Без необходимости каждый раз запускать команду и без прямой связи с моей терминальной оболочкой?

Большое спасибо.

Edit:

Это на бамбуковом стеке. Поднятие рабочих или запуск граблей: работа, отложенные задания выполняются какое-то время, но затем очередь просто перестает обрабатываться. В очереди отложенных заданий нет ошибок, рабочие просто перестают обрабатывать задания. Он должен явно перезапускаться каждые 5 или 10 минут.

Ответы [ 3 ]

4 голосов
/ 12 ноября 2011

Из документов:

В стеке Хероку Аспен или Бамбук используйте heroku workers 1

В стеке Cedar вы помещаете эту строку в свой Procfile:

worker: bundle exec rake jobs:work

А потом сделай heroku scale worker=1.

2 голосов
/ 17 ноября 2011

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

1 голос
/ 17 ноября 2011

Оказывается, я использовал неправильный гем рейка.

Следующие проблемы вызывали проблемы с рельсами 3 на Heroku:

gem 'rake', '0.9.2'

Обновление драгоценного камня устранило проблемы, хотя в журнале не было ошибок:

gem "rake", "0.8.7"
...