Skip to content
阅读进度

如何理解重试、死信与错误分类? ​

返回 EachOf 项目 目录

项目版本说明

这些问答整合历史设计与实现资料;当前 main 分支 README 以工作包描述建设状态。具体能力、实验数据与设计目标的边界见项目状态与证据。

标准回答 ​

错误可分为暂时性基础设施故障、限流、不可恢复输入、权限或来源失效,以及候选不合法。重试策略应依据类别、尝试次数、总体期限和来源当前状态。配置错误、撤销来源和不合法候选不能靠无限重试自动变好。

EachOf 的状态设计包含 retry_wait、dead 和 canceled 等终止或等待形态。死信需要保留可定位的任务身份、错误类别和尝试信息,并提供受控的修正后重跑,而非自动把所有死信重新倒回队列。

观测至少包含队列最老等待时间、各状态数量、执行与提交耗时、租约过期率和同类错误聚集。只看成功总量会漏掉某个旧任务永久卡住或持续占据队头的问题。

追问与回答 ​

撤销来源后的任务应重试还是取消 ​

如果来源不可能通过重试恢复为合法基准,应终止或重新建立有明确新依据的操作,而不是继续处理旧任务。

如何设置退避 ​

用有限次数和指数或其他受控退避加抖动,受任务总体期限约束;具体数值要由服务限制和耗时观测确定。

易混淆点 ​

  • 用重试次数变大掩盖不可恢复错误。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。