Class: Pitchfork::ReforkCondition::RequestsCount
- Inherits:
-
Object
- Object
- Pitchfork::ReforkCondition::RequestsCount
- Defined in:
- lib/pitchfork/refork_condition.rb
Instance Method Summary collapse
- #backoff!(delay = ReforkCondition.backoff_delay) ⇒ Object
- #backoff? ⇒ Boolean
-
#initialize(request_counts) ⇒ RequestsCount
constructor
A new instance of RequestsCount.
- #met?(worker, logger) ⇒ Boolean
Constructor Details
#initialize(request_counts) ⇒ RequestsCount
Returns a new instance of RequestsCount.
12 13 14 15 |
# File 'lib/pitchfork/refork_condition.rb', line 12 def initialize(request_counts) @limits = request_counts @backoff_until = nil end |
Instance Method Details
#backoff!(delay = ReforkCondition.backoff_delay) ⇒ Object
40 41 42 |
# File 'lib/pitchfork/refork_condition.rb', line 40 def backoff!(delay = ReforkCondition.backoff_delay) @backoff_until = Pitchfork.time_now + delay end |
#backoff? ⇒ Boolean
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/pitchfork/refork_condition.rb', line 29 def backoff? return false if @backoff_until.nil? if @backoff_until > Pitchfork.time_now true else @backoff_until = nil false end end |
#met?(worker, logger) ⇒ Boolean
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/pitchfork/refork_condition.rb', line 17 def met?(worker, logger) if limit = @limits.fetch(worker.generation) { @limits.last } if worker.requests_count >= limit return false if backoff? logger.info("worker=#{worker.nr} pid=#{worker.pid} processed #{worker.requests_count} requests, triggering a refork") return true end end false end |