导言
任务模型的抽象具有广泛通用性的,例如饿了么骑手每笔骑单是任务,小法庭中交易纠纷的评审也可以被抽象为任务。
下面是简易的任务系统模块图,图示中去除了上下游的模块,保留了核心与小法庭业务特色部分。
本文主要介绍
- 分配制下任务消费堆积问题以及解法
- 申领制下任务异常消费问题以及解法
- 并发下任务过度消费问题以及解法
任务堆积
任务堆积根本原因是任务的流入速度大于任务的消费速度,导致任务失去时效性。
一个稳定的系统,产生任务堆积的原因可能是流入速度的瞬时增大,例如业务准入规则的变化。也可能是任务消费速度的下降,例如业务完结条件的改变、操作人处理效率下降等。
小法庭任务系统在重构之前,任务的分发采用了分配制(见下图),任务投票系统处理效率不光低,更致命的是不稳定。造成系统在一个月内流判(未在指定时间内完成)的任务达到了近上万件。
分配制会设定一个每小时级别的定时任务,该定时任务的逻