lib/mail_room/delivery/sidekiq.rb in mail_room-0.8.1 vs lib/mail_room/delivery/sidekiq.rb in mail_room-0.9.0

- old
+ new

@@ -6,18 +6,19 @@ module MailRoom module Delivery # Sidekiq Delivery method # @author Douwe Maan class Sidekiq - Options = Struct.new(:redis_url, :namespace, :queue, :worker) do + Options = Struct.new(:redis_url, :namespace, :sentinels, :queue, :worker) do def initialize(mailbox) redis_url = mailbox.delivery_options[:redis_url] || "redis://localhost:6379" namespace = mailbox.delivery_options[:namespace] + sentinels = mailbox.delivery_options[:sentinels] queue = mailbox.delivery_options[:queue] || "default" worker = mailbox.delivery_options[:worker] - super(redis_url, namespace, queue, worker) + super(redis_url, namespace, sentinels, queue, worker) end end attr_accessor :options @@ -38,17 +39,23 @@ end private def client - client = Redis.new(url: options.redis_url) + @client ||= begin + sentinels = options.sentinels + redis_options = { url: options.redis_url } + redis_options[:sentinels] = sentinels if sentinels - namespace = options.namespace - if namespace - require 'redis/namespace' - Redis::Namespace.new(namespace, redis: client) - else - client + redis = ::Redis.new(redis_options) + + namespace = options.namespace + if namespace + require 'redis/namespace' + Redis::Namespace.new(namespace, redis: redis) + else + redis + end end end def item_for(message) {