定时任务不要只关注能不能跑

定时任务写起来很快,但线上最容易出问题的地方往往不是能不能触发,而是重复执行、执行失败、部分成功、没人发现和无法重跑。

任务要能重复执行

定时任务可能因为发布、调度抖动、人工补偿而重复触发。如果任务逻辑不幂等,重复执行就可能造成重复扣款、重复通知、重复生成数据。

所以任务入口要和普通接口一样考虑幂等。可以通过业务状态、任务记录、唯一标识等方式保护。

失败要可恢复

任务失败后不能只依赖下一轮自然执行。有些任务错过时间窗口后需要补偿,有些任务需要从上次成功的位置继续。任务执行记录就很重要。

记录里至少应该能看出任务开始、结束、处理范围、结果和失败原因。这样人工介入时才有依据。

要有观察入口

定时任务如果只在日志里出现,维护成本会很高。最好能有任务列表、执行历史、失败详情和手动重跑入口。这样运营、测试和开发都能看到任务状态。

没有观察入口的定时任务,出问题时往往只能靠猜。

复盘

定时任务是一种后台业务流程,不是简单的时间触发器。它需要幂等、记录、补偿、告警和重跑能力。能跑只是开始,能维护才是重点。

参考