Class: Umbra::ShadowRequester

Inherits:
Object
  • Object
show all
Defined in:
lib/umbra/shadow_requester.rb

Instance Method Summary collapse

Constructor Details

#initialize(count: 1, pool: 1, max_queue_size: 100) ⇒ ShadowRequester

Returns a new instance of ShadowRequester.



3
4
5
6
7
8
9
10
# File 'lib/umbra/shadow_requester.rb', line 3

def initialize(count: 1, pool: 1, max_queue_size: 100)
  @count = count
  @pool = pool
  @queue = Queue.new
  @stop = Object.new
  @lock = Mutex.new
  @max_queue_size = max_queue_size
end

Instance Method Details

#call(env) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/umbra/shadow_requester.rb', line 12

def call(env)
  start_worker!

  if @queue.size > @max_queue_size
    Umbra.logger.warn '[umbra] Shadowing queue at max - dropping items'
    return
  end

  request = RequestBuilder.call(env)

  @count.times { @queue.push(request) }
end