2013-07-04 1 views
1

Как запустить Resqueрабочие на разных серверах, но результаты опроса с одного сервера Redis?Как запустить Resqueрабочие на разных серверах, но результаты опроса с одного сервера redis

Как resque, используя redis для выполнения всех заданий, я ищу способ передать параметр рабочему классу, чтобы рабочий мог подключиться к другому серверу redis.

Мне нужно это, потому что на одном сервере недостаточно ресурсов для запуска всех рабочих.

+0

Что касается бегущего работника-разведчика на разных серверах, то я в высокой степени отличается от того, что работник нуждается в окружении рельсов, чтобы поддерживать его вместе с Redis (можно перемещать redis, но в какой среде abt), если вы можете это сделать быть хорошим – Viren

ответ

4

Вам просто нужно настроить Resque для подключения к конкретному экземпляру Redis. По умолчанию Resque пытается подключиться на localhost. Просто создайте или измените config/resque.yml, как описано here. Это, вероятно, должен содержать что-то вроде этого:

production: my-one-and-only-redis-instance-address.com:6379 

Вы, вероятно, хотите, чтобы убедиться, что сервер Redis принимает соединения только с серверов у вас есть Resque рабочих на фильтрацию с использованием IP на уровне операционной системы.

+0

Вопрос только в том, как рабочий ресниц возьмет среду рельсов во внимание, так как OP намеревается запустить resque worker на другом сервере – Viren

+0

По умолчанию resque пытается подключиться на локальном хосте, поэтому resque работает на серверах A и B будет пытаться подключиться к redis на серверах A и B соответственно. Но, если они оба настроены на то, чтобы указывать на сервер C, они оба будут подключаться к тому же удаленному экземпляру redis вместо локального. Это позволяет работать с несколькими серверами из одной рабочей очереди. –

+2

Чтобы прояснить, все приложение rails нужно будет развернуть на каждый сервер, на котором вы хотите работать. Сервер, содержащий экземпляр redis, не обязательно будет использовать приложение rails, если вы не хотите, чтобы на нем тоже работали напрямую. Лучший подход, если у вас будет много серверов, на которых работают рескейские рабочие, заключается в том, что сервер redis все указывает на запуск только redis. В большинстве приложений с большими рельсами есть несколько серверов приложений (обслуживающий веб-контент), несколько рабочих рабочих серверов и выделенные серверы для служб данных (redis, mysql, mongo и т. Д.). –