Module: Sidekiq::RedisConnection

Defined in:
lib/sidekiq/redis_connection.rb

Class Method Summary collapse

Class Method Details

.create(options = {}) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/sidekiq/redis_connection.rb', line 10

def create(options = {})
  symbolized_options = options.transform_keys(&:to_sym)
  symbolized_options[:url] ||= determine_redis_provider

  logger = symbolized_options.delete(:logger)
  logger&.info { "Sidekiq #{Sidekiq::VERSION} connecting to Redis with options #{scrub(symbolized_options)}" }

  raise "Sidekiq 7+ does not support Redis protocol 2" if symbolized_options[:protocol] == 2
  size = symbolized_options.delete(:size) || 5
  pool_timeout = symbolized_options.delete(:pool_timeout) || 1
  pool_name = symbolized_options.delete(:pool_name)

  redis_config = Sidekiq::RedisClientAdapter.new(symbolized_options)
  ConnectionPool.new(timeout: pool_timeout, size: size, name: pool_name) do
    redis_config.new_client
  end
end