class BookingSync::Engine::Retryable
Public Class Methods
perform(times:, errors:, before_retry: ->(_error) {} { || ... }
click to toggle source
# File lib/bookingsync/engine/retryable.rb, line 2 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