Skip to content

延时任务:选型与复盘 ​

阅读来源:MirrorML 《延时任务方案设计》。以下为简短导读和新增复习问题,不是原文全文。

阅读摘要 ​

原文从活动状态切换和次日结算出发,讨论数据库轮询的成本、多实例争抢,以及 Redis、延时消息、时间轮和分片处理等方案。阅读时应先区分实时触发与批量处理,再比较故障恢复方式。

先把需求写清楚 ​

以下为本知识库建议的复习表。先填业务要求,再对照原文评估方案。

维度需要回答的问题
时效允许晚执行多久?如何衡量?
规模待执行总量和到期峰值分别是多少?
恢复进程退出后,未完成任务在哪里找到?
重复同一任务执行两次,业务结果会怎样?
取消任务修改或撤销后,旧任务怎么识别?

设计一次故障演练 ​

选定一个方案后,分别在“领取后、执行中、完成但未确认”三个时刻终止进程。观察任务是否被重新发现,并记录是否产生重复业务结果。

这里提供的是演练题目,尚未在本项目实现任务服务或执行实验。

自测 ​

  • 为什么选这个方案?依据是时效、吞吐还是维护成本?
  • 任务已经过期但一直未完成,如何发现?
  • 扩容时,如何验证没有漏掉任务?

继续阅读:后端与分布式。