class Fluent::PluginHelper::ServiceDiscovery::RoundRobinBalancer

Public Class Methods

new() click to toggle source
# File lib/fluent/plugin_helper/service_discovery/round_robin_balancer.rb, line 21
def initialize
  @services = []
  @mutex = Mutex.new
end

Public Instance Methods

rebalance(services) click to toggle source
# File lib/fluent/plugin_helper/service_discovery/round_robin_balancer.rb, line 26
def rebalance(services)
  @mutex.synchronize do
    @services = services
  end
end
select_service() { |s| ... } click to toggle source
# File lib/fluent/plugin_helper/service_discovery/round_robin_balancer.rb, line 32
def select_service
  s = @mutex.synchronize do
    s = @services.shift
    @services.push(s)
    s
  end
  yield(s)
end