Sha256: 40a7c062d0a3fb819bebf2373f7be1d2a66ee504aca4c1e1bb75e9e863c6c154

Contents?: true

Size: 321 Bytes

Versions: 3

Compression:

Stored size: 321 Bytes

Contents

class BookingSync::Engine::Retryable
  def self.perform(times:, errors:, before_retry: ->(_error) {})
    executed = 0
    begin
      executed += 1
      yield
    rescue *errors => error
      if executed < times
        before_retry.call(error)
        retry
      else
        raise error
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
bookingsync-engine-6.0.1 lib/bookingsync/engine/retryable.rb
bookingsync-engine-6.0.0 lib/bookingsync/engine/retryable.rb
bookingsync-engine-5.1.0 lib/bookingsync/engine/retryable.rb