Class: LoadBalancer::RoundRobin
- Defined in:
- lib/multi_dbs_load_balancer/load_balancer/round_robin.rb
Instance Attribute Summary
Attributes inherited from Algo
#database_configs, #key, #redis
Instance Method Summary collapse
Methods inherited from Algo
#after_connected, #after_executed, #connected_to_next_db, #fail_over, #initialize
Methods included from Healthcheck
#db_available?, #mark_db_down, #mark_redis_down, #redis_available?
Methods included from RedisLua
Constructor Details
This class inherits a constructor from LoadBalancer::Algo
Instance Method Details
#next_db(**options) ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/multi_dbs_load_balancer/load_balancer/round_robin.rb', line 11 def next_db(**) @current = cas_current return @database_configs[@current], @current if db_available?(@current) next_dbs = (@current+1...@current+@database_configs.size).map { |i| i % @database_configs.size } fail_over(next_dbs) end |
#warm_up ⇒ Object
7 8 9 |
# File 'lib/multi_dbs_load_balancer/load_balancer/round_robin.rb', line 7 def warm_up @@currents ||= ::Hash.new(0) end |