123456789_123456789_123456789_123456789_123456789_

Module: ActiveJob::Exceptions

Relationships & Source Files
Namespace Children
Modules:
Extension / Inclusion / Inheritance Descendants
Included In:
ActionMailer::MailDeliveryJob, Base, ::ActiveRecord::DestroyAssociationAsyncJob
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Defined in: activejob/lib/active_job/exceptions.rb

Overview

Provides behavior for retrying and discarding jobs on exceptions.

Constant Summary

Class Method Summary

::ActiveSupport::Concern - Extended

class_methods

Define class methods from given block.

included

Evaluate given block in context of base class, so that you can write class macros here.

prepended

Evaluate given block in context of base class, so that you can write class macros here.

Instance Method Summary

DSL Calls

included

[ GitHub ]


10
11
12
13
# File 'activejob/lib/active_job/exceptions.rb', line 10

included do
  class_attribute :retry_jitter, instance_accessor: false, instance_predicate: false, default: 0.0
  class_attribute :after_discard_procs, default: []
end

Instance Method Details

#retry_job(options = {})

Reschedules the job to be re-executed. This is useful in combination with rescue_from. When you rescue an exception from your job you can ask Active Job to retry performing your job.

Options

  • :wait - Enqueues the job with the specified delay in seconds

  • :wait_until - Enqueues the job at the time specified

  • :queue - Enqueues the job on the specified queue

  • :priority - Enqueues the job with the specified priority

Examples

class SiteScraperJob < ActiveJob::Base
  rescue_from(ErrorLoadingSite) do
    retry_job queue: :low_priority
  end

  def perform(*args)
    # raise ErrorLoadingSite if cannot scrape
  end
end
[ GitHub ]

  
# File 'activejob/lib/active_job/exceptions.rb', line 157

def retry_job(options = {})
  instrument :enqueue_retry, options.slice(:error, :wait) do
    enqueue options
  end
end