| Class | Dsadmin::Admind::RetryPolicy |
| In: |
lib/dsadmin/admind/Cron.rb
|
| Parent: | Object |
Specification of a retry policy
Basically a simple struct with assertions on the values it takes. See the RETRY_* constants in class Cron for some examples.
| ALLOWED_KINDS | = | [:regular, :exponential, :fixed] |
| kind | [R] | One of :regular, :exponential or :fixed |
| sequence | [R] | See sequence= |
# File lib/dsadmin/admind/Cron.rb, line 89
89: def self.from_hash(hash)
90: subj = RetryPolicy.new
91: subj.from_hash(hash)
92: end
# File lib/dsadmin/admind/Cron.rb, line 98
98: def initialize(aKind = nil, aSequence = nil)
99: self.kind = aKind unless(aKind.nil?)
100: self.sequence = aSequence unless(aSequence.nil?)
101: end
# File lib/dsadmin/admind/Cron.rb, line 81
81: def from_hash(hash)
82: requireKindOf(Hash, hash)
83: self.kind = hash[:kind] || hash['kind']
84: self.sequence = hash[:sequence] || hash['sequence']
85: self
86: end
Set the kind of sequence — :regular, :exponential or :fixed
| ":regular": | Retry at a regular interval |
| ":exponential": | Retry with the interval doubling each time |
| ":fixed": | Retry only with the intervals given in the sequence, stop after that |
# File lib/dsadmin/admind/Cron.rb, line 55
55: def kind=(aKind)
56: requireTrue(ALLOWED_KINDS.include?(aKind))
57: @kind = aKind
58: end
Set the sequence of (initial) retry intervals (Array of positive integers (minutes), minimum 1 element, ascending).
# File lib/dsadmin/admind/Cron.rb, line 63
63: def sequence=(anArray)
64: requireNotNil(anArray)
65: requireTrue(anArray.kind_of?(Array))
66: anArray.each { |i|
67: requireTrue(i.kind_of?(Integer))
68: requireTrue(i >= 0)
69: }
70: checkMinSize(1, anArray)
71:
72: @sequence = anArray
73: end