本文介绍任务调度的功能特性。
分布式任务调度框架
提供多种任务类型满足不同场景需求,进行可靠的自动化任务调度。
简单任务
最基本的任务类型,适用于业务逻辑简单的场景。单个简单任务对应一个 handler,支持任务分片及分步:
当需要并发执行并且不关注资源利用率时,可以使用简单任务的分片功能。
当需要将一个任务分成若干步骤按顺序执行时,可以使用简单任务的分步功能。
集群任务
适用于复杂的调度场景,支持用户按业务的要求,通过自定义的拆分逻辑将一个大的任务拆分到多个客户端上并发执行。
集群任务可以分成两个阶段:
拆分阶段:对数据进行分片,不限制拆分层数,将拆分结果上报给服务端,由服务端根据拆分的 Chunk(一批待处理数据分片集合) 通知客户端来拉取数据进行处理。
执行阶段:客户端接收到通知后拉取数据进行处理,处理完后继续拉取新的数据,直到数据都处理完成。
拓扑任务
一种特殊的任务,由许多通过事件触发的任务组成的集合。任务拓扑本身可以通过 CRON 表达式或者事件触发,但其包含的子任务必须是通过事件触发的,并且通信方式必须是 CALLBACK。任务拓扑中的任务执行流程均从开始节点开始,到结束节点终止,任务的执行流程形成一张有向无环图。
任务图形化依赖编排
支持将多个任务按执行的顺序编排成一张拓扑图,自动执行,无需人工干预,从而保证对大量任务的调度快速高效地完成。
支持多种依赖管理网关
提供直接依赖,条件网关及并行网关管理任务之间的关系。
执行过程中人工干预
支持对执行中的任务拓扑进行优雅停止及断点续跑。
图形化编排操作
通过图形化操作界面,快速完成任务的编排,提高工作效率。
任务配置项
提供丰富的任务配置项,包括多种路由策略、多种失败重试模式、多种漏触发处理策略,并支持在线配置调度任务入参。
多种路由策略
支持定时任务在客户端集群中随机触发、轮询触发或定向触发。
多种失败重试模式
支持的失败重试模式包括手动重试、不重试、重试三次、重试到下次触发,并支持配置超时时间。
多种漏触发处理策略
漏触发处理策略包括不处理、立即触发、时间充裕则立即触发三种。
支持在线配置调度任务入参
支持配置自定义参数,任务触发时会把这些参数传递给任务。
任务管理功能
对任务提供丰富的管理功能,包括手动触发、配置导入导出、OpenAPI 等。
自动触发和手动触发
支持任务通过定时触发、周期性触发、事件触发及人工手动触发。
任务配置导入导出,批量启用及禁用
支持在控制台上对配置以文件的方式的批量导入及导出,批量启用及禁用。
提供 OpenAPI
为开发者提供了对任务进行查看、增加、触发、删除等丰富的管理接口。
图形化的集中式管理界面
提供简单易用的管理界面,包括任务依赖视图、任务执行监控、客户端节点信息、触发记录查看。
任务依赖视图
提供任务全景图,清晰查看任务的上游下游依赖关系。
任务执行监控
支持实时查看任务的执行状态、进度、时长等信息。
支持查看任务的触发记录
包括触发时间、执行的客户端 IP、执行是否成功、执行失败原因等。
单元化架构
任务调度支持单元化架构,在单元化架构下,任务调度可以识别到任务客户端所在的单元信息,指定单元进行任务触发。 具体架构实现流程如下:
客户端连接所有的 server,注册连接时携带单元信息。
服务端任务触发时,会根据启动的单元信息找到对应的连接,触发任务。