class EbisuConnection::ConnectionManager
Public Class Methods
new(spec_name = nil)
click to toggle source
Calls superclass method
# File lib/ebisu_connection/connection_manager.rb, line 8 def initialize(spec_name = nil) super @replicas = replica_conf.map do |conf| Replica.new(conf, spec_name) end end
Public Instance Methods
clear_all_connections!()
click to toggle source
# File lib/ebisu_connection/connection_manager.rb, line 25 def clear_all_connections! @replicas.each(&:disconnect!) end
put_aside!()
click to toggle source
# File lib/ebisu_connection/connection_manager.rb, line 21 def put_aside! @replicas.each(&:put_aside!) end
recovery?()
click to toggle source
# File lib/ebisu_connection/connection_manager.rb, line 29 def recovery? dead_replicas = @replicas.select do |replica| c = replica.connection rescue nil !c || !c.active? end return false if dead_replicas.empty? dead_replicas.each do |replica| replica.disconnect! @replicas.delete(replica) end raise AllReplicaHasGoneError if @replicas.empty? @load_balancer = nil true end
replica_connection()
click to toggle source
# File lib/ebisu_connection/connection_manager.rb, line 16 def replica_connection raise AllReplicaHasGoneError if @replicas.empty? load_balancer.replica.connection end
Private Instance Methods
load_balancer()
click to toggle source
# File lib/ebisu_connection/connection_manager.rb, line 50 def load_balancer @load_balancer ||= LoadBalancer.new(@replicas) end
replica_conf()
click to toggle source
# File lib/ebisu_connection/connection_manager.rb, line 54 def replica_conf @replica_conf ||= Config.new(spec_name) end