class Workerholic::JobRetry

Constants

MAX_RETRY_ATTEMPTS

Attributes

job[R]
sorted_set[R]
stats_storage[R]

Public Class Methods

new(options={}) click to toggle source
# File lib/workerholic/job_retry.rb, line 7
def initialize(options={})
  @job = options[:job]
  @sorted_set = options[:sorted_set] || SortedSet.new('workerholic:scheduled_jobs')
end

Public Instance Methods

retry() click to toggle source
# File lib/workerholic/job_retry.rb, line 12
def retry
  return if job.retry_count >= MAX_RETRY_ATTEMPTS

  increment_retry_count
  schedule_job_for_retry
  Workerholic.manager
             .scheduler
             .schedule(JobSerializer.serialize(job), job.execute_at)
end

Private Instance Methods

increment_retry_count() click to toggle source
# File lib/workerholic/job_retry.rb, line 24
def increment_retry_count
  job.retry_count += 1
end
schedule_job_for_retry() click to toggle source
# File lib/workerholic/job_retry.rb, line 28
def schedule_job_for_retry
  job.execute_at = Time.now.to_f + 10 * job.retry_count
end