Подтвердить что ты не робот

Запуск сотрудника delayed_job на Heroku?

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

Чтобы заставить delayed_job работать с heroku, я использовал почти ту же команду: heroku run rake jobs:work. Это решение работает без того, чтобы я ничего не оплачивал для расходов на обслуживание для Heroku, но мне нужно оставить окно командной строки открытым, иначе рабочий-замедлитель остановится, когда я его закрою. Есть ли команда для постоянного поддержания работы этого сотрудника delayed_job даже при закрытии окна команд? Или есть еще один лучший способ сделать это?

4b9b3361

Ответ 1

Добавить

worker: rake jobs:work

на ваш Procfile.

EDIT:

Даже если вы запустите его с консоли, вы купите "рабочий дино", но Heroku имеет в секунду билинг. Таким образом, вы не платите, потому что у вас есть 750 часов бесплатно, а месяц в худшем случае - 744 часа, поэтому у вас есть бесплатный 6h для ваших дополнительных динозавров, задач планировщика и т.д.

Ответ 2

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

Я также использовал hirefireapp, что дает гораздо более высокую степень контроля за масштабированием рабочих. Это стоит, но стоит меньше, чем один геройский рабочий (более месяца). Я не использую это сейчас, но использовал его, и он работал очень хорошо.

Ответ 3

Я еще не пробовал его лично, но вы можете найти nohup полезным. Это позволяет вашему процессу работать, даже если вы закрыли окно терминала. Ссылка: http://linux.101hacks.com/unix/nohup-command/

Ответ 4

Использование консоли heroku для привлечения рабочих на задания создаст только созданный временный динамометр для задания. Чтобы задания выполнялись без cli, вам нужно поместить команду в файл Procfile по предложению @Lucaksz.

После развертывания вам также необходимо масштабировать динамическое формирование, так как герою нужно знать, сколько динамиков должно быть помещено в тип процесса следующим образом: heroku ps: scale worker = 1

Подробнее можно прочитать здесь https://devcenter.heroku.com/articles/scaling