概念原理

本文介绍任务调度的概念原理。

任务分步

一个简单任务可以拆分成多个执行步骤(step),由不同的执行器(handler)按顺序执行。前置步骤成功完成后才开始执行下一个步骤。

例如,“对账”任务的处理步骤是:下载银行的清算文件 > 根据约定格式解析文件 > 文件数据与机构日间交易数据核对 > 结果处理(差错账生成及处理)。每一个步骤可以由对应的 handler 单独执行。

任务分片

任务分片功能适用于执行时间很长的任务。当数据量很大时,任务调度系统支持在单个执行步骤中把数据拆分成多个分片(data chunk),把一个任务的数据分散到不同的机器上运行。

一个数据分片只由一个线程执行。多个数据分片可以在多台机器上调度执行,也可以在一台机器的多个线程上调度执行,具体调度方式由调度中心根据负载进度进行调整。

使用任务分片可以缩短任务执行时间,同时也可以解决单机计算能力上限的问题,并降低部分任务失败对整体系统的影响。

任务拓扑

任务拓扑(Topology)是由许多通过事件触发的任务的集合,描述了任务依赖关系。子任务可以并发执行或根据条件执行。任务拓扑中的任务执行流程均从开始节点开始,到结束节点终止,任务的执行流程形成一张有向无环图。