class Dryad::Cluster::RoundRobin

Public Class Methods

new() click to toggle source
# File lib/dryad/cluster/round_robin.rb, line 4
def initialize
  @index = Concurrent::AtomicFixnum.new
  @services = Concurrent::AtomicReference.new
end

Public Instance Methods

service() click to toggle source
# File lib/dryad/cluster/round_robin.rb, line 13
def service
  instances = @services.get()
  if instances.nil? || instances.empty?
    raise Dryad::Cluster::NoServicesError, "Round robin nodes are empty."
  end
  instances[@index.increment % instances.size]
end
set_services(instances) click to toggle source
# File lib/dryad/cluster/round_robin.rb, line 9
def set_services(instances)
  @services.set(instances)
end