Class: Influxdb::Api::Client::ConnectionPool

Inherits:
Object
  • Object
show all
Defined in:
lib/influxdb/api/client/connection_pool.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = Influxdb::Api.config) ⇒ ConnectionPool

Returns a new instance of ConnectionPool.



7
8
9
10
# File 'lib/influxdb/api/client/connection_pool.rb', line 7

def initialize(config = Influxdb::Api.config)
  @config = config
  @connections = build_connections
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



5
6
7
# File 'lib/influxdb/api/client/connection_pool.rb', line 5

def config
  @config
end

Instance Method Details

#allObject



21
22
23
# File 'lib/influxdb/api/client/connection_pool.rb', line 21

def all
  @connections
end

#build_connectionsObject



36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/influxdb/api/client/connection_pool.rb', line 36

def build_connections
  config.hosts.map do |host|
    Connection.new(
      host,
      ::Faraday::Connection.new(
        host,
        config.connection_options,
        &config.connection_block
      ),
      config
    )
  end
end

#connectionsObject Also known as: alive



12
13
14
# File 'lib/influxdb/api/client/connection_pool.rb', line 12

def connections
  @connections.reject{|c| c.dead? }
end

#deadObject



17
18
19
# File 'lib/influxdb/api/client/connection_pool.rb', line 17

def dead
  @connections.select{|c| c.dead? }
end

#each(&block) ⇒ Object



25
26
27
# File 'lib/influxdb/api/client/connection_pool.rb', line 25

def each(&block)
  connections.each(&block)
end

#get_connectionObject



29
30
31
32
33
34
# File 'lib/influxdb/api/client/connection_pool.rb', line 29

def get_connection
  if connections.empty? && dead_connection = dead.sort{|a, b| a.failures <=> b.failures }.first
    dead_connection.alive!
  end
  config.selector.select_from(alive)
end