我正在使用 ActiveJob,我对捕获异常的方法 discard_on 和 retry_on 有一些疑问。
ActiveJob 是否定义了它们的顺序和执行顺序?(我想这是相关的,但我不确定。)
假设相关,我希望retry_on只捕获自定义异常,而其他异常被discard_on捕获。
我在源码中看到discard_on和retry_on是使用rescue_from,因为recovery_from定义语句后要先执行所以这里是我自己假设定义的方式,希望大家帮我指出是否正确,当然如果您有更好的方法来实现相同的功能,请告诉我,非常感谢。
class RemoteServiceJob < ActiveJob::Base
discard_on StandardError # second catch other exceptions
retry_on MyCustomException, wait: 5.seconds, attempts: 3 # first catch custom exceptions
end