Sha256: 46dcff21782413fe19159a3e6a41828b598d137c90915602899e31baebc73ac4

Contents?: true

Size: 326 Bytes

Versions: 9

Compression:

Stored size: 326 Bytes

Contents

module RetryOnError
  def retry_on_error(errors:, limit: 10, on_error: nil)
    tries ||= 1
    yield
  rescue *errors => e
    if tries < limit
      message = "#{e}, attempt #{tries} of #{limit}"
      Imap::Backup::Logger.logger.debug message
      on_error&.call
      tries += 1
      retry
    end
    raise e
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
imap-backup-14.1.1 lib/retry_on_error.rb
imap-backup-14.1.0 lib/retry_on_error.rb
imap-backup-14.0.0 lib/retry_on_error.rb
imap-backup-13.4.0 lib/retry_on_error.rb
imap-backup-13.3.0 lib/retry_on_error.rb
imap-backup-13.2.0 lib/retry_on_error.rb
imap-backup-13.1.0 lib/retry_on_error.rb
imap-backup-13.0.0 lib/retry_on_error.rb
imap-backup-12.1.0 lib/retry_on_error.rb