Class: Umbra::ShadowRequester
- Inherits:
-
Object
- Object
- Umbra::ShadowRequester
- Defined in:
- lib/umbra/shadow_requester.rb
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(count: 1, pool: 1, max_queue_size: 100) ⇒ ShadowRequester
constructor
A new instance of ShadowRequester.
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 |