class ConnectionPool

Public Class Methods

new(opts, &block) click to toggle source
# File lib/thrift_client/pool.rb, line 3
def initialize(opts, &block)
  @idle = []    #空闲的连接
  @active = {}  #活动的连接
  @pending = [] #等待的线程或纤程id
  opts[:size].times do
    @idle.push(block.call) if block_given?
  end
  @size = opts[:size]
  @state = true # mark this pool active
end

Public Instance Methods

destroy() click to toggle source
# File lib/thrift_client/pool.rb, line 30
def destroy
        raise NotImplementedError
end
execute() click to toggle source
# File lib/thrift_client/pool.rb, line 14
def execute
        raise NotImplementedError
end
status() click to toggle source

Returns current pool utilization.

@return [Hash] Current utilization.

# File lib/thrift_client/pool.rb, line 21
def status
  {
    state: state,
    idle: @idle.size,
    active: @active.size,
    pending: @pending.size
  }
end