用途:用于完整走通 Rails 后台任务开发闭环——任务设计、TDD 实现、重试与丢弃策略配置、失败场景测试与生产监控,适用于使用 Sidekiq、Solid Queue、Active Job 等异步处理的场景。
主要能力:
- 任务设计:明确触发条件、入参、副作用与关键性,制定幂等策略(唯一任务键、状态检查、哨兵时间戳),并把错误分为瞬时(重试)、永久(丢弃)、配置类(告警);确定队列优先级与超时。
- TDD 实现:先写失败测试,覆盖成功执行、幂等(跑两次结果相同)、瞬时错误抛出、永久错误丢弃,确认因未实现而失败后再实现代码,并跑全量测试。
- 重试/丢弃配置:瞬时错误用 retry_on 指数退避并限制尝试次数(3–5);永久错误用 discard_on 并记录日志;配置任务与 worker 级超时;接入 Sentry 等错误追踪与 StatsD/Datadog 指标。示例命令与代码保持原样,如 retry_on EmailService::TimeoutError, wait: :exponentially_longer, attempts: 5,以及 SolidQueue.configure { |c| c.worker = { processes: 2, threads: 5, polling_interval: 1 } }。
- 故障演练与监控:集成层面注入瞬时错误并验证后端重新入队、永久错误不重排且不抛出、超时触发、成功/失败指标递增与队列积压告警。
使用方式:按阶段推进并逐项通过各阶段的硬性门槛;设计已定时可只用实现部分;完成后的报告需包含设计、TDD 红绿、重试配置、已测故障场景与监控信息。
限制:不适用于非 Rails 或非 Active Job 的异步体系;队列后端、监控组件与具体阈值需按项目实际环境确定;本资料未提供具体价格、版本兼容性说明。