Sha256: b45df9d0e9ea7304202fe1ab3f796622489bd0598ef441b35cf33de711280337

Contents?: true

Size: 570 Bytes

Versions: 19

Compression:

Stored size: 570 Bytes

Contents

# frozen_string_literal: true

module Floe
  class Workflow
    class Retrier
      attr_reader :error_equals, :interval_seconds, :max_attempts, :backoff_rate

      def initialize(payload)
        @payload = payload

        @error_equals     = payload["ErrorEquals"]
        @interval_seconds = payload["IntervalSeconds"] || 1.0
        @max_attempts     = payload["MaxAttempts"] || 3
        @backoff_rate     = payload["BackoffRate"] || 2.0
      end

      def sleep_duration(attempt)
        interval_seconds * (backoff_rate * attempt)
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
floe-0.11.0 lib/floe/workflow/retrier.rb
floe-0.10.0 lib/floe/workflow/retrier.rb
floe-0.9.0 lib/floe/workflow/retrier.rb
floe-0.7.1 lib/floe/workflow/retrier.rb
floe-0.8.0 lib/floe/workflow/retrier.rb
floe-0.7.0 lib/floe/workflow/retrier.rb
floe-0.6.1 lib/floe/workflow/retrier.rb
floe-0.6.0 lib/floe/workflow/retrier.rb
floe-0.5.0 lib/floe/workflow/retrier.rb
floe-0.4.1 lib/floe/workflow/retrier.rb
floe-0.4.0 lib/floe/workflow/retrier.rb
floe-0.3.1 lib/floe/workflow/retrier.rb
floe-0.3.0 lib/floe/workflow/retrier.rb
floe-0.2.3 lib/floe/workflow/retrier.rb
floe-0.2.2 lib/floe/workflow/retrier.rb
floe-0.2.1 lib/floe/workflow/retrier.rb
floe-0.2.0 lib/floe/workflow/retrier.rb
floe-0.1.1 lib/floe/workflow/retrier.rb
floe-0.1.0 lib/floe/workflow/retrier.rb