ActiveJob rescue_from возвращает успех без рейза и неудачи - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь поймать некоторые ошибки в моем ApplicationJob, но я не хочу, чтобы эти ошибки вызывали исключения (и возвращали неудачное выполнение задания), но я хочу, чтобы некоторые ошибки игнорировались (что в основном возвращает успех) , Я могу сделать это, используя обычные begin-rescue в каждой работе в отдельности, но я хочу поделиться этим спасением между несколькими работами.

Проблема в том, что rescue_from перехватывает ошибку, но в любом случае выдает ошибку, и при выполнении задания происходит сбой.

application_job.rb

class ApplicationJob < ActiveJob::Base

  rescue_from StandardError do |exception|
    puts "Rescuing"
    true
  end

end

test_job.rb

class TestJob < ApplicationJob


  def perform(*args)
    raise ActiveResource::ResourceNotFound, "Wow"
  end

end

Журнал, когда я выполняю задание:

Performing TestJob (Job ID: fd58cbd5-eb03-4fdc-8301-1ea70a9b1d8b) from Async(default)
Error performing TestJob (Job ID: fd58cbd5-eb03-4fdc-8301-1ea70a9b1d8b) from Async(default) in 1.03ms: ActiveResource::ResourceNotFound (Failed.):
...
.../.rvm/rubies/ruby-2.4.4/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
-e:1:in `<main>'
Rescuing
 => #<ActiveResource::ResourceNotFound: Failed.>
...