Я пытаюсь поймать некоторые ошибки в моем 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.>