Отдельный рабочий сервер для отложенного задания с использованием Capistrano на Linode?

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

Мой вопрос в том, как мне настроить Capistrano для развертывания моего приложения на обоих серверах, запустив только фактический выход в Интернет с одного и используя другой для DJ? Сделал бы я что-нибудь подобное?

role :web, "domain.com"
role :app, "domain.com", "workers.domain.com"
role :db,  "domain.com", :primary => true

person dchuk    schedule 29.04.2011    source источник
comment
Ответьте на эти два вопроса: stackoverflow.com/questions/7210715/ stackoverflow.com/questions/4621817/   -  person John Bachir    schedule 27.08.2011


Ответы (1)


Вы можете установить отдельную роль сервера для отложенных заданий, добавив это в свой рецепт:

set :delayed_job_server_role, :utility

Затем прикрепите эту роль к вашему рабочему (служебному) серверу:

role :web, "domain.com"
role :app, "domain.com"
role :db,  "domain.com", :primary => true
role :utility, "workers.domain.com"

Для получения дополнительной информации: https://github.com/collectiveidea/delayed_job/wiki/Rails-3-and-Capistrano

person aruanoc    schedule 18.12.2013