Refactor (ruby) redis configuration (#31694)

This commit is contained in:
David Roetzel 2024-09-02 16:19:55 +02:00 committed by GitHub
parent a23b3747ac
commit 388d5473e1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 295 additions and 90 deletions

View file

@ -1,54 +0,0 @@
# frozen_string_literal: true
class RedisConfiguration
class << self
def establish_pool(new_pool_size)
@pool&.shutdown(&:close)
@pool = ConnectionPool.new(size: new_pool_size) { new.connection }
end
delegate :with, to: :pool
def pool
@pool ||= establish_pool(pool_size)
end
def pool_size
if Sidekiq.server?
Sidekiq[:concurrency]
else
ENV['MAX_THREADS'] || 5
end
end
end
def connection
if namespace?
Redis::Namespace.new(namespace, redis: raw_connection)
else
raw_connection
end
end
def namespace?
namespace.present?
end
def namespace
ENV.fetch('REDIS_NAMESPACE', nil)
end
def url
ENV['REDIS_URL']
end
def redis_driver
ENV.fetch('REDIS_DRIVER', 'hiredis') == 'ruby' ? :ruby : :hiredis
end
private
def raw_connection
Redis.new(url: url, driver: redis_driver)
end
end