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.

Methods

from_hash   from_hash   kind=   new   sequence=   to_hash  

Included Modules

Dsadmin::Contractor Dsadmin::ValueChecker

Constants

ALLOWED_KINDS = [:regular, :exponential, :fixed]

Attributes

kind  [R]  One of :regular, :exponential or :fixed
sequence  [R]  See sequence=

Public Class methods

[Source]

    # 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

[Source]

     # 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

Public Instance methods

[Source]

    # 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

[Source]

    # 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).

[Source]

    # 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

[Source]

    # File lib/dsadmin/admind/Cron.rb, line 76
76:       def to_hash
77:         {:kind => kind, :sequence => sequence }
78:       end

[Validate]