Module: Legion::Cache::Pool

Extended by:
Pool, Logging::Helper
Included in:
Memcached, Pool, Redis
Defined in:
lib/legion/cache/pool.rb

Instance Method Summary collapse

Instance Method Details

#availableObject



31
32
33
# File 'lib/legion/cache/pool.rb', line 31

def available
  client.available
end

#closeObject



35
36
37
38
39
40
41
42
# File 'lib/legion/cache/pool.rb', line 35

def close
  return unless @client

  @client.shutdown(&:close)
  @client = nil
  @connected = false
  log.info "#{pool_log_name} pool closed"
end

#connected?Boolean

Returns:

  • (Boolean)


12
13
14
15
16
17
# File 'lib/legion/cache/pool.rb', line 12

def connected?
  return false unless defined?(@connected)
  return @connected.true? if @connected.respond_to?(:true?)

  @connected == true
end

#pool_sizeObject



27
28
29
# File 'lib/legion/cache/pool.rb', line 27

def pool_size
  @pool_size ||= Legion::Settings[:cache][:pool_size] || 10
end

#restart(**opts) ⇒ Object



44
45
46
47
48
49
50
51
52
53
# File 'lib/legion/cache/pool.rb', line 44

def restart(**opts)
  close
  @client = nil
  client_hash = opts
  client_hash[:pool_size] = opts[:pool_size] if opts.key? :pool_size
  client_hash[:timeout] = opts[:timeout] if opts.key? :timeout
  client(**client_hash)
  @connected = true
  log.info "#{pool_log_name} pool restarted"
end

#sizeObject



19
20
21
# File 'lib/legion/cache/pool.rb', line 19

def size
  client.size
end

#timeoutObject



23
24
25
# File 'lib/legion/cache/pool.rb', line 23

def timeout
  @timeout ||= Legion::Settings[:cache][:timeout] || 5
end