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