Class: Trophonius::ConnectionManager

Inherits:
Object
  • Object
show all
Defined in:
lib/connectors/connection_manager.rb

Instance Method Summary collapse

Constructor Details

#initializeConnectionManager

Returns a new instance of ConnectionManager.



3
4
5
6
7
8
9
# File 'lib/connectors/connection_manager.rb', line 3

def initialize
  @connections = {}
  Trophonius.config.pool_size.times do
    connection = Connection.new
    @connections[connection.id] = { connection: connection, queue: [] }
  end
end

Instance Method Details

#dequeue(id) ⇒ Object



18
19
20
21
22
23
# File 'lib/connectors/connection_manager.rb', line 18

def dequeue(id)
  connection = @connections.values.find { |c| c[:queue].include?(id) }
  connection[:queue].delete_if { |q_id| q_id == id }
  puts "out,#{connection[:connection].id},#{connection[:connection].token},#{connection[:queue].length}" if Trophonius.config.debug == true
  nil
end

#enqueue(id) ⇒ Object



11
12
13
14
15
16
# File 'lib/connectors/connection_manager.rb', line 11

def enqueue(id)
  connection = @connections.values.min_by { |c| c[:queue].length }
  connection[:queue].push(id)
  puts "in,#{connection[:connection].id},#{connection[:connection].token},#{connection[:queue].length}" if Trophonius.config.debug == true
  auth_header_bearer(connection[:connection].id)
end