Sha256: 6f8a0e360ec62a79f2d4f96e27a95be2d7d9324826e413701082246e905479d1

Contents?: true

Size: 779 Bytes

Versions: 7

Compression:

Stored size: 779 Bytes

Contents

require_relative '../support/job_buffer'

class RescueJob < ActiveJob::Base
  include ActiveJob::Retry
  constant_retry limit: 0, delay: 0

  class OtherError < StandardError; end

  rescue_from(ArgumentError) do
    JobBuffer.add('rescued from ArgumentError')
    arguments[0] = "DIFFERENT!"
    retry_job
  end

  rescue_from(ActiveJob::DeserializationError) do |e|
    JobBuffer.add('rescued from DeserializationError')
    JobBuffer.add("DeserializationError original exception was #{e.original_exception.class.name}")
  end

  def perform(person = "david")
    JobBuffer.add('running')
    case person
    when "david"
      raise ArgumentError, "Hair too good"
    when "other"
      raise OtherError
    else
      JobBuffer.add('performed beautifully')
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
activejob-retry-0.5.1 test/jobs/rescue_job.rb
activejob-retry-0.5.0 test/jobs/rescue_job.rb
activejob-retry-0.4.2 test/jobs/rescue_job.rb
activejob-retry-0.4.1 test/jobs/rescue_job.rb
activejob-retry-0.4.0 test/jobs/rescue_job.rb
activejob-retry-0.3.1 test/jobs/rescue_job.rb
activejob-retry-0.3.0 test/jobs/rescue_job.rb