У меня есть класс 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
никогда не вызывается. Кажется, что дочернее задание просто завершается, и управление не переходит к родителю.
Есть ли способ спасения пользовательских ошибок в родительском задании или мне нужно повторять один и тот же обработчик ошибок в каждом дочернем задании?