外观
如何理解重试、死信与错误分类?
项目版本说明
这些问答整合历史设计与实现资料;当前 main 分支 README 以工作包描述建设状态。具体能力、实验数据与设计目标的边界见项目状态与证据。
标准回答
错误可分为暂时性基础设施故障、限流、不可恢复输入、权限或来源失效,以及候选不合法。重试策略应依据类别、尝试次数、总体期限和来源当前状态。配置错误、撤销来源和不合法候选不能靠无限重试自动变好。
EachOf 的状态设计包含 retry_wait、dead 和 canceled 等终止或等待形态。死信需要保留可定位的任务身份、错误类别和尝试信息,并提供受控的修正后重跑,而非自动把所有死信重新倒回队列。
观测至少包含队列最老等待时间、各状态数量、执行与提交耗时、租约过期率和同类错误聚集。只看成功总量会漏掉某个旧任务永久卡住或持续占据队头的问题。
追问与回答
撤销来源后的任务应重试还是取消
如果来源不可能通过重试恢复为合法基准,应终止或重新建立有明确新依据的操作,而不是继续处理旧任务。
如何设置退避
用有限次数和指数或其他受控退避加抖动,受任务总体期限约束;具体数值要由服务限制和耗时观测确定。
易混淆点
- 用重试次数变大掩盖不可恢复错误。
内容来源
- Android 与 AI 工程 Wiki · 原条目
q159