Class: EbisuConnection::SlaveGroup
- Inherits:
-
Object
- Object
- EbisuConnection::SlaveGroup
show all
- Defined in:
- lib/ebisu_connection/slave_group.rb
Defined Under Namespace
Classes: AllSlavesHasGoneError
Instance Method Summary
collapse
Constructor Details
#initialize(slaves_conf, slave_group) ⇒ SlaveGroup
Returns a new instance of SlaveGroup.
5
6
7
8
9
10
11
|
# File 'lib/ebisu_connection/slave_group.rb', line 5
def initialize(slaves_conf, slave_group)
@slaves = slaves_conf.map do |conf|
Slave.new(conf, slave_group)
end
recalc_roulette
end
|
Instance Method Details
#all_disconnect! ⇒ Object
33
34
35
36
|
# File 'lib/ebisu_connection/slave_group.rb', line 33
def all_disconnect!
@reserve_release = nil
@slaves.each {|s| s.disconnect!}
end
|
#recovery_connection? ⇒ Boolean
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/ebisu_connection/slave_group.rb', line 18
def recovery_connection?
dead_slaves = @slaves.select{|s| !s.active? }
return false if dead_slaves.empty?
dead_slaves.each do |s|
s.disconnect!
@slaves.delete(s)
end
raise AllSlavesHasGoneError if @slaves.empty?
recalc_roulette
true
end
|
#reserve_release_connection! ⇒ Object
38
39
40
|
# File 'lib/ebisu_connection/slave_group.rb', line 38
def reserve_release_connection!
@reserve_release = true
end
|
#reserved_release? ⇒ Boolean
42
43
44
|
# File 'lib/ebisu_connection/slave_group.rb', line 42
def reserved_release?
!!@reserve_release
end
|
#sample ⇒ Object
13
14
15
16
|
# File 'lib/ebisu_connection/slave_group.rb', line 13
def sample
raise AllSlavesHasGoneError if @slaves.empty?
@slaves[@roulette.sample]
end
|