Class: Wikiwiki::Strategy::Wait

Inherits:
Object
  • Object
show all
Defined in:
lib/wikiwiki/rate_limiter.rb

Overview

Strategy that waits when limit is exceeded

Instance Method Summary collapse

Instance Method Details

#acquire!(limiter) ⇒ void

This method returns an undefined value.

Parameters:



136
137
138
139
140
141
142
143
144
# File 'lib/wikiwiki/rate_limiter.rb', line 136

def acquire!(limiter)
  limiter.mutex.synchronize do
    until limiter.can_request?
      wait_time = limiter.wait_time
      sleep wait_time if wait_time&.positive?
    end
    limiter.record!
  end
end