Управление различными очередями на нескольких серверах - PullRequest
2 голосов
/ 24 июня 2011

В настоящее время я использую Resque для работы с фоновыми заданиями в моем приложении. Сейчас у меня 5 разных очередей (они будут расти очень быстро). Каждый из них выполняет такие функции, как обновление индексов Solr, уведомления в режиме реального времени, запланированные информационные бюллетени, отложенные электронные письма и SMS. И в настоящее время я использую Resque в качестве драгоценного камня для рельсов и запускаю среду Resque from rails.

Теперь я планирую перенести задачу обновления индекса Solr и запланированные новостные рассылки на другой сервер, поскольку эти две операции выполняют тяжелые операции. Один из подходов - просто скопировать каталог rails на новый сервер и запустить задания Resque из среды rails. Но мне не удобно это делать.

Еще одно создание отдельного грабельного приложения для задач восстановления. Но проблема в том, что обе эти задачи тесно связаны с моделями рельсов и шаблонами рельсов. Я совершенно не уверен, что делать дальше.

Кто-нибудь сталкивался с подобной проблемой, а как вы проектировали приложение?

1 Ответ

6 голосов
/ 25 июня 2011

Мы используем rubber для подготовки наших серверов и развертывания.Это плагин для Capistrano, который выполняет развертывание на основе ролей.Одна из ролей - «resque_worker», и любой компьютер с этой ролью запустит resque-pool, чтобы начать обработку работы.

Но вы можете сделать это намного проще.Просто разверните свое приложение на двух разных машинах.Resque предназначен для работы на разных машинах.Пока ваша вторая машина может получить доступ к вашему серверу Redis, все будет работать нормально.

...