【发布时间】:2018-12-03 19:13:44
【问题描述】:
我正在使用 ActiveJob,但我对用于捕获异常的方法 discard_on 和 retry_on 有一些疑问。
ActiveJob 是否定义了它们的顺序和执行顺序? (我猜它是相关的,但我不确定。)
假设相关,希望retry_on只捕获自定义异常,其他异常被discard_on捕获。
我看到source code中的discard_on和retry_on是使用rescue_from,因为rescue_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
【问题讨论】:
标签: ruby-on-rails rails-activejob ruby-on-rails-5.2