module Resque::Pertry::Retry::ClassMethods
Public Instance Methods
around_perform_pertry_00_retry(args = {}) { || ... }
click to toggle source
Resque
around_perform hook
# File lib/resque/pertry/retry.rb, line 90 def around_perform_pertry_00_retry(args = {}) ResquePertryPersistence.trying_job(self, args) yield end
on_failure_pertry_00_retry(exception, args = {})
click to toggle source
Resque
on_failure hook (job failed)
# File lib/resque/pertry/retry.rb, line 97 def on_failure_pertry_00_retry(exception, args = {}) return unless retryable? ResquePertryPersistence.with_job(self, args) do |job_model| job = instance(args) unless job.retry!(job_model, exception) ResquePertryPersistence.fail_job(self, args) end end end
reset_retry_properties()
click to toggle source
Quickly reset all retry properties Useful if you have a base job class
# File lib/resque/pertry/retry.rb, line 74 def reset_retry_properties self._retry_delays = nil self._retry_attempts = nil self._retry_delays = nil self._retry_ttl = nil self._retry_exceptions = nil end
retry_attempts()
click to toggle source
# File lib/resque/pertry/retry.rb, line 49 def retry_attempts self._retry_attempts end
retry_delay()
click to toggle source
# File lib/resque/pertry/retry.rb, line 28 def retry_delay self._retry_delay end
retry_delays()
click to toggle source
# File lib/resque/pertry/retry.rb, line 39 def retry_delays self._retry_delays end
retry_exceptions()
click to toggle source
# File lib/resque/pertry/retry.rb, line 68 def retry_exceptions self._retry_exceptions end
retry_ttl()
click to toggle source
# File lib/resque/pertry/retry.rb, line 58 def retry_ttl self._retry_ttl end
retryable?()
click to toggle source
Check if we will retry this job on failure There has to be a constraint on the number of times we will retry a failing job or have a ttl, otherwise we could be retrying job endlessly
# File lib/resque/pertry/retry.rb, line 85 def retryable? retry_attempts || retry_delays || retry_ttl end
set_retry_attempts(count)
click to toggle source
Sets the maximum number of times we will retry
# File lib/resque/pertry/retry.rb, line 44 def set_retry_attempts(count) self._retry_delays = nil self._retry_attempts = count == :clear ? nil : Integer(count) end
set_retry_delay(delay)
click to toggle source
Sets a number of seconds to wait before retrying
# File lib/resque/pertry/retry.rb, line 23 def set_retry_delay(delay) self._retry_delays = nil self._retry_delay = delay == :clear ? nil : Integer(delay) end
set_retry_delays(*delays)
click to toggle source
Sets a list of delays (list length will be the # of attempts)
# File lib/resque/pertry/retry.rb, line 33 def set_retry_delays(*delays) set_retry_attempts :clear set_retry_delay :clear self._retry_delays = Array(delays).map { |delay| Integer(delay) } end
set_retry_exceptions(*exceptions)
click to toggle source
Sets a list of exceptions that we want to retry If none are set, we will retry every exceptions
# File lib/resque/pertry/retry.rb, line 64 def set_retry_exceptions(*exceptions) self._retry_exceptions = Array(exceptions) end
set_retry_ttl(ttl)
click to toggle source
Sets the maximum time-to-live of the job, after which no attempts will ever be made
# File lib/resque/pertry/retry.rb, line 54 def set_retry_ttl(ttl) self._retry_ttl = ttl == :clear ? nil : Integer(ttl) end