当前位置: 首页 > news >正文

[ruby on rails] ActiveJob中 discard_on,retry_on和 rescue_from的应用

job 中 discard_on,retry_on和 rescue_from的应用

# frozen_string_literal: trueclass OrdersRefundJob < ApplicationJobqueue_as :default# 不重试了直接丢弃discard_on Exceptions::CustomException # ActiveRecord::RecordNotFound 错误的话,间隔 2 秒,重试 3 次retry_on ActiveRecord::RecordNotFound, wait: 2.seconds, attempts: 3# Exceptions::InvalidAction 错误的话,更新数据rescue_from Exceptions::InvalidAction doservice = AfterSaleService.find(arguments[0])service.update!(is_refunding: false)enddef perform(service_id)service = AfterSaleService.find(service_id)service.refundend
end

相关测试

# frozen_string_literal: truerequire 'rails_helper'RSpec.describe OrdersRefundJob, type: :job doit 'auto refund the aftersale order' do@order = create(:order, :paid)expect(@order.status).to eq('paid')expect(service.status).to eq('initial')OrdersRefundJob.perform_now(service.id)expect(@order.reload.status).to eq('closed')expect(service.reload.status).to eq('finished')endit 'retry on ActiveRecord::RecordNotFound' doActiveJob::Base.queue_adapter.enqueued_jobs.clearexpect doOrdersRefundJob.perform_now(nil)end.not_to raise_error(ActiveRecord::RecordNotFound)expect(enqueued_jobs.size).to eq(1)job_detail = enqueued_jobs.find { |job| job[:job] == OrdersRefundJob }expect(job_detail).to be_presentend
end
http://www.lqws.cn/news/509419.html

相关文章:

  • 用福昕阅读器打开pdf文件,整个程序窗口自动缩小的问题
  • 14.OCR字符识别
  • 10-Python模块详解
  • 猿人学js逆向比赛第一届第十二题
  • 国产化条码类库Spire.Barcode教程:如何使用 C# 读取 PDF 中的条码(两种方法轻松实现)
  • 【前端】JS模块化解析-ESModule
  • C# VB.NET取字符串中全角字符数量和半角字符数量
  • 电机驱动基础
  • Rust 项目实战:多线程 Web 服务器
  • 第1篇:环境搭建与第一个Gin应用
  • 数字图像处理——滤波器核(kernel)
  • 构建你的 AI 模块宇宙:Spring AI MCP Server 深度定制指南
  • macOS 26 Tahoe
  • 2025年应用材料、机械与制造工程国际会议(ICAMMME 2025)
  • Starrocks 低基数全局字典优化
  • 桌面小屏幕实战课程:DesktopScreen 8 非易失性存储器NVS
  • 市面上重要的AI开发工具和框架
  • C++038(指针)
  • ci | cd
  • OpenHarmony如何获取app_signature证书指纹
  • jenkinsfile调用groovy
  • 如何为虚拟机上的 Manjaro Linux启用 VMware 拖放功能
  • API测试工具Parasoft SOAtest:应对API变化,优化测试执行
  • 简单项目 esp8266 红外接收 2025年6月24日21:35:32
  • JavaScript 存储对象 sessionStorage (会话存储) 和 localStorage(本地存储)
  • 正点原子——直流无刷电机-霍尔传感基本实现流程
  • WEB安全--Java安全--jsp webshell免杀1
  • leetcode114-二叉树展开为链表
  • 人机交互动画制作新突破!文本驱动扩散框架HOIDiNi:一句话驱动虚拟人高精度操作物体。
  • 美团小程序闪购 mtgsig1.2