任务的异步执行通常用两种方式:
- 消息
- 定时任务
在分布式场景下,消息,分布式定时任务这类第三方中间件,并不能保证消息或任务一定会被消费或者执行。
我们要做的,就是尽力避免遗漏消息或者任务。
编码过程中,按照以下三步骤进行。
1.落地数据,发送消息
2.消息接收-处理
3.定时任务补偿
@startumlstart:获取落地数据;:逻辑处理;if (处理结果) then (成功):删除落地数据;endelse (失败):记录执行次数;:是否要告警;endifstop@enduml
