You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于JobRunr与Spring Boot集成的处理语义及故障场景疑问

JobRunr 语义与故障处理答疑

关于“至少一次”与“恰好一次”的理解

你的理解完全正确:

  • JobRunr 官网强调的是**至少一次(At Least Once)**语义:只要任务创建成功无异常,就一定会被执行至少一次。
  • FAQ 中提到的“确保任务仅处理一次”,是指正常场景下通过乐观锁机制协调多个工作节点,避免同一任务被并发执行。但这并非严格的**恰好一次(Exactly Once)**语义——如果任务已经执行完成,但由于网络波动、数据库故障等原因,任务状态未能从PROCESSING更新为SUCCEEDED,JobRunr 会在超时后将任务重新标记为待执行状态,导致任务被重复处理。

任务处于PROCESSING状态时失败的处理逻辑

当任务状态为PROCESSING但实际处理失败时,JobRunr 的处理流程如下:

  1. 异常触发失败:如果任务执行过程中抛出未捕获的异常,JobRunr 会立即将任务状态从PROCESSING更新为FAILED。
  2. 超时触发失败:如果任务长时间处于PROCESSING状态(超过配置的超时时间),JobRunr 会判定任务执行失败,将其状态更新为FAILED。
  3. 重试机制:处于FAILED状态的任务会按照预设的重试策略(可配置重试次数、重试延迟间隔)自动重试,每次重试前状态会转为SCHEDULED,到时间后再次进入PROCESSING状态。
  4. 最终状态:当重试次数耗尽后,任务会被标记为DEAD,不再自动重试,此时可通过手动操作重新触发执行。

内容的提问来源于stack exchange,提问作者alext

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 12:35:30