Module: LeelaClient::LoadBalancer
Instance Method Summary collapse
Instance Method Details
#group(ring, values) ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/leela_client/lb.rb', line 21 def group(ring, values) g = Hash[ ring.values.map {|x| [x, []]} ] values.each do |v| node = ring.select(v.key) g[node] << v end return(g) end |
#group_limit(ring, values, maxsize) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/leela_client/lb.rb', line 30 def group_limit(ring, values, maxsize) g = {} c = 0 group(ring, values).each do |k, vs| tmp = [[]] vs.each do |v| c += v.size if (c >= maxsize) c = v.size tmp << [] end tmp[-1] << v end g[k] = tmp.select {|vs| vs.size > 0} end return(g) end |