Sha256: b54c49380a40469aaa422ae10811fdfda0a21737e0867929a12efd00e739ecc2

Contents?: true

Size: 704 Bytes

Versions: 7

Compression:

Stored size: 704 Bytes

Contents

require 'connection_pool'
require 'redis'

module Upperkut
  class RedisPool
    DEFAULT_OPTIONS = {
      pool_timeout: 1, # pool related option
      size: 2, # pool related option
      connect_timeout: 0.2,
      read_timeout: 5.0,
      write_timeout: 0.5
    }.freeze

    def initialize(options)
      @options      = DEFAULT_OPTIONS.merge(url: ENV['REDIS_URL'])
                                     .merge(options)

      # Extract pool related options
      @size         = @options.delete(:size)
      @pool_timeout = @options.delete(:pool_timeout)
    end

    def create
      ConnectionPool.new(timeout: @pool_timeout, size: @size) do
        Redis.new(@options)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
upperkut-1.0.4 lib/upperkut/redis_pool.rb
upperkut-1.0.2 lib/upperkut/redis_pool.rb
upperkut-1.0.0.rc lib/upperkut/redis_pool.rb
upperkut-0.8.1 lib/upperkut/redis_pool.rb
upperkut-0.8.0 lib/upperkut/redis_pool.rb
upperkut-0.7.5 lib/upperkut/redis_pool.rb
upperkut-0.7.4 lib/upperkut/redis_pool.rb