Sye*_*mah 7 ruby delayed-job ruby-on-rails-3
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
Run Code Online (Sandbox Code Playgroud)
当我在else语句中提出"延迟RefundJob失败"时,它会创建一个Airbrake.如果它在else部分结束,我想再次运行该作业.
有没有办法在不引发异常的情况下重新排队工作?并防止制造空气制动器?
我正在使用delayed_job版本1.
根据定义,DelayedJob 期望作业引发错误以重新排队。
从那里您可以:
关于后面的解决方案,我建议添加一些机制,在第三次或以后的尝试中仍然填充减速板报告,您仍然可以检测到出现问题,而无需通过尝试填充日志的麻烦。
| 归档时间: |
|
| 查看次数: |
583 次 |
| 最近记录: |