class SeaMule::Backend
Constants
- MAX_RECONNECT_ATTEMPTS
Attributes
logger[R]
store[R]
Public Class Methods
connect(server)
click to toggle source
# File lib/seamule/backend.rb, line 14 def self.connect(server) case server when String redis = connect_to(server) Redis::Namespace.new(:seamule, redis: redis) when Hash Redis::Namespace.new(:seamule, redis: Redis.new(server)) else raise ArgumentError, "Invalid Server: #{server.inspect}" end end
connect_to(server)
click to toggle source
# File lib/seamule/backend.rb, line 26 def self.connect_to(server) Redis.connect(url: server, :thread_safe => true) end
new(store, logger)
click to toggle source
# File lib/seamule/backend.rb, line 9 def initialize(store, logger) @store = store @logger = logger end
Public Instance Methods
reconnect()
click to toggle source
# File lib/seamule/backend.rb, line 32 def reconnect store.client.reconnect rescue Redis::BaseConnectionError tries ||= 0 if (tries += 1) < MAX_RECONNECT_ATTEMPTS logger.info "Error reconnecting to Redis; retrying" Kernel.sleep(tries) retry else logger.info "Error reconnecting to Redis; quitting" raise ConnectionError end end