对于任务系统的整体流程,今天和同事聊了下一些实现细节,发现里面有不少的细节,关于任务的ID在不同的流程设计中看起来相似,但是实现的时候还是有很多差异。
整体来说,我把任务的注册,执行,结果查询分为了两种类型:异步任务和定时任务。
而对任务的执行明细上有一些差异,有的API可能执行时间不确定,比如备份任务,执行时间会比较长,这种任务是需要通过回调的方式来更新任务状态的,而对于通常的绝大多数任务来说,执行时间可控,都是秒级别,就不需要回调了。
所以根据任务结果是否回调,我们组合起来了四种场景。从设计上,我们是把任务系统和调度系统力求分离开来,这样在后期的时候可以方便做分布式架构和部署实现。
场景1:异步任务,任务结果不回调
场景2:异步任务,任务结果回调
场景3:定时任务,任务结果不回调
场景4:定时任务,任务结果回调相关链接: