【问题标题】:How to handle exceptions from nested jobs?如何处理嵌套作业的异常?
【发布时间】: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 块永远不会被调用。似乎子作业只是简单地退出并且控制不会传回给父作业。

有没有办法挽救父作业中的自定义错误,还是我必须在每个子作业中重复相同的错误处理程序?

【问题讨论】:

    标签: sidekiq rails-activejob


    【解决方案1】:

    像普通的 Ruby 代码一样调用它并从图片中移除 ActiveJob:

    ChildJobA.new.perform(user)
    ChildJobB.new.perform(user)
    ChildJobC.new.perform(user)
    

    这应该会正常上升。

    【讨论】:

    • 谢谢,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-10
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 2015-01-10
    相关资源
    最近更新 更多