ruby – 延迟作业每次引发错误时都会创建Airbrakes

前端之家收集整理的这篇文章主要介绍了ruby – 延迟作业每次引发错误时都会创建Airbrakes前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
def perform
  refund_log = {
    success: refund_retry.success?,amount: refund_amount,action: "refund"
  }
  if refund_retry.success?
    refund_log[:reference] = refund_retry.transaction.id
    refund_log[:message] = refund_retry.transaction.status
  else
    refund_log[:message] = refund_retry.message
    refund_log[:params] = {}
    refund_retry.errors.each do |error|
      refund_log[:params][error.code] = error.message
    end
    order_transaction.message = refund_log[:params].values.join('|')
    raise "delayed RefundJob has Failed"
  end
end

当我在else语句中提出“延迟RefundJob失败”时,它会创建一个Airbrake.如果它在else部分结束,我想再次运行该作业.

有没有办法在不引发异常的情况下重新排队工作?并防止制造空气制动器?

我正在使用delayed_job版本1.

解决方法

最干净的方法是重新排队,即创建一个新作业并将其入队,然后正常退出方法.
原文链接:https://www.f2er.com/ruby/268176.html

猜你在找的Ruby相关文章