2014-11-26 1 views
0

У меня есть приложение 3.2.3 рельсов на OPENHIFT. Мне нужен лучший способ управления фоновыми заданиями, например ежедневные, еженедельные или ежемесячные поисковые предупреждения (когда пользователи могут подписаться на поиски, которые они сделали, и получать оповещения по электронной почте с новыми продуктами). Я установил картридж REDIS согласно these instructions. Имеются картриджи OPENHIFT для Resque и Sidekiq, но команды установки не работают.Лучший способ запустить рельсы фоновых заданий с помощью Openshift

мне удалось установить Resque как драгоценный камень в соответствии с этими instructions и она работает, когда я начинаю его с помощью команды граблей: RAILS_ENV=production bundle exec rake resque:work QUEUE='*' Но рабочий останавливается, как только я закрываю инструмент командной строки. Когда я использую action-hooks для одной и той же задачи rake, она работает только в течение некоторого периода времени, а затем я должен перезапустить рабочего снова. Как я могу начать работать только один раз на производстве?

ответ

0

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

+0

Спасибо за ответ, я тоже об этом подумал. Но тогда как я могу запустить задание cron из моего контроллера rails (если задание не запланировано). Например, каждый раз, когда создается новый продукт, я должен искать пользователей, подписавшихся на этот тип продукта, и отправлять им электронную почту с обновлениями. – maricavor

+1

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

+0

Если задача рейка будет выполняться каждый час или часто, это повлияет на производительность сайта? Я слышал, что запуск rake-задачи будет загружать весь стек Rails и может съесть много процессора и памяти. – maricavor