展开知识库目录

定时任务怎样设置输入、失败通知、重试和停止条件

输入晚到、重复执行、部分成功、凭证过期和通知失败都很常见。

先把问题看准

定时任务先设计失败,而不是先设计频率

输入晚到、重复执行、部分成功、凭证过期和通知失败都很常见。任务需要幂等、锁、超时、重试上限、告警和人工停止方式。

第 1 步

输入和触发

定义时间、时区、节假日、数据就绪条件和补跑方式,避免仅靠整点假设。

把涉及的文件、目录、版本、命令和实际输出写进记录;代码变化同时保留 diff 与测试结果。

第 2 步

幂等与并发

使用批次 ID、唯一键或状态表,重复触发不重复发送、扣费或覆盖。

确认“幂等与并发”已经有可回查结果,再进入“超时与重试”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

第 3 步

超时与重试

区分可重试瞬时错误和永久错误,设置退避、最大次数与死信或待处理区。

确认“超时与重试”已经有可回查结果,再进入“通知与观测”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

第 4 步

通知与观测

日志含任务、批次、开始结束、输入输出和错误层;失败通知有独立通道和负责人。

确认“通知与观测”已经有可回查结果,再进入“停止与恢复”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

第 5 步

停止与恢复

提供禁用开关、清理部分结果、从检查点恢复和人工批准路径,先做故障演练。

需要修改时先限定文件和行为范围,无法说明回滚方式或影响面的动作先不执行。 完成后把证据归入“调度契约与失败演练记录”。

完成后应能在“调度契约与失败演练记录”中找到与这一步对应的记录;仍需靠猜测补全,就停在这里。

做到这里就可以停

调度契约应覆盖一次失败演练

主动制造输入缺失、超时和重复触发,确认不会重复产生副作用,告警到达且能恢复。只跑通一次成功不够。

进一步核对

参考资料与核对入口