Class: CI::Queue::CircuitBreaker::MaxConsecutiveRequeues

Inherits:
Object
  • Object
show all
Defined in:
lib/ci/queue/circuit_breaker.rb

Instance Method Summary collapse

Constructor Details

#initialize(max_consecutive_requeues:) ⇒ MaxConsecutiveRequeues

Returns a new instance of MaxConsecutiveRequeues.



86
87
88
89
# File 'lib/ci/queue/circuit_breaker.rb', line 86

def initialize(max_consecutive_requeues:)
  @max = max_consecutive_requeues
  @consecutive_requeues = 0
end

Instance Method Details

#messageObject



107
108
109
# File 'lib/ci/queue/circuit_breaker.rb', line 107

def message
  'This worker is exiting early because it requeued too many consecutive tests, probably because of some corrupted state.'
end

#open?Boolean

Returns:

  • (Boolean)


103
104
105
# File 'lib/ci/queue/circuit_breaker.rb', line 103

def open?
  @consecutive_requeues >= @max
end

#report_failure!Object



91
92
93
# File 'lib/ci/queue/circuit_breaker.rb', line 91

def report_failure!
  @consecutive_requeues = 0
end

#report_requeue!Object



95
96
97
# File 'lib/ci/queue/circuit_breaker.rb', line 95

def report_requeue!
  @consecutive_requeues += 1
end

#report_success!Object



99
100
101
# File 'lib/ci/queue/circuit_breaker.rb', line 99

def report_success!
  @consecutive_requeues = 0
end