Используйте несколько серверов Redis в Sidekiq

Я использую Sidekiq для обработки фоновых заданий в одном из наших проектов Rails. Мы хотим использовать другой сервер Redis, расположенный в другом месте, чтобы отделить ReportDB от другого задания фоновой обработки.

Согласно вики конфигурации Sidekiq, мы можем настроить как

config/initializers/sidekiq.rb

Sidekiq.configure_server do |config|
   config.redis = { :url => 'redis://redis.example.com:7372/12', :namespace => 'mynamespace' }
end

Sidekiq.configure_client do |config|
   config.redis = { :url => 'redis://redis.example.com:7372/12', :namespace => 'mynamespace' }
end

Но как я могу инициализировать соединение с несколькими серверами Redis?


person Mr. Bless    schedule 25.03.2014    source источник


Ответы (1)


Sidekiq 2 не поддерживает несколько серверов Redis, обновитесь до sidekiq 3, выпущенного только сегодня, и добавьте новую функцию сегментирования клиента, которая вам нужна.

Из: Примечание к выпуску Sidekiq 3

Разделение клиентов

Sidekiq 2.x имеет предел масштабируемости: один сервер Redis. На практике ограничение превышает 5000 заданий в секунду на хорошем оборудовании, поэтому для большинства это не имело большого значения, но некоторые из наиболее активных пользователей Sidekiq достигли этого предела. Обновленный (Sidekiq 3) Sidekiq::Client API позволяет вам указать пул соединений Redis для использования, а не использовать ранее глобальный пул Sidekiq.redis, что позволяет нацеливать различные типы заданий на разные серверы Redis. Теперь вы можете масштабировать Sidekiq до бесконечности и даже больше!

API почти полностью совместим с предыдущими версиями: единственное серьезное изменение — промежуточное ПО на стороне клиента. Дополнительные сведения см. в примечаниях по обновлению.

===

Также взгляните на ответ для Работать с двумя отдельными экземплярами Redis с помощью sidekiq?

person zoras    schedule 28.03.2014