【发布时间】:2020-02-20 11:55:14
【问题描述】:
我有一个 Sidekiq / ActiveJob 类,如下所示:
class ParentJob < ApplicationJob
queue_as :default
def perform(user)
ChildJobA.perform_now(user)
ChildJobB.perform_now(user)
ChildJobC.perform_now(user)
...
rescue CustomError => e
handle_error(e)
end
end
通过ParentJob.perform_later(user)调用父作业。
子作业可以提出CustomError。我以为我可以拯救那些在父母工作中的人——但我的 rescue 块永远不会被调用。似乎子作业只是简单地退出并且控制不会传回给父作业。
有没有办法挽救父作业中的自定义错误,还是我必须在每个子作业中重复相同的错误处理程序?
【问题讨论】: