lib/congestion/redis_pool.rb
require 'redis'
require 'connection_pool'
module Congestion
class RedisPool
class << self
attr_accessor :redis_config
attr_accessor :pool_size
attr_accessor :timeout
end
self.redis_config = { }
self.pool_size = 5
self.timeout = 5
attr_accessor :pool
def self.instance
@instance ||= new
@redis_pool ||= ->{ @instance.pool.with{ |redis| redis } }
end
private
def initialize
pool_config = { size: self.class.pool_size, timeout: self.class.timeout }
self.pool = ConnectionPool.new(pool_config) do
Redis.new self.class.redis_config
end
end
end
end