
引言
最近宜信开源微服务任务调度平台 SIA-TASK,SIA-TASK 属于分布式的任务调度平台,使用起来简单方便,非常容易入手,部署搭建好 SIA-TASK 任务调度平台之后,编写 TASK 后配置 JOB 进行调度,进而实现整个调度流程。本文新建了 JOB 示例,该 JOB 关联了前后级联的两个 TASK,TASKONE(前置 TASK)和 TASKTWO(后置 TASK),主要阐述一个 JOB 怎样关联配置两个级联 TASK,以及该 JOB 是如何通过 SIA-TASK 实现任务调度,最终实现对两个 TASK 执行器的调用。
拓展阅读:宜信开源|宜信开源微服务任务调度平台SIA—TASK
宜信开源|分布式任务调度平台SIA-TASK的架构设计与运行流程
首先,根据部署文档来搭建任务调度平台。
源码地址:https://github.com/siaorg/sia-task
官方文档:https://github.com/siaorg/sia-task/blob/master/README.md
任务调度平台主要由任务编排中心、任务调度中心以及 ZK 和 DB 等第三方服务构成,搭建 SIA-TASK 任务调度平台需要的主要工作包括:
1.MySQL 的搭建及根据建表语句建表
2.zookeeper 安装
3.SIA-TASK 前端项目打包及部署
4.任务编排中心(sia-task-config)部署
5.任务调度中心(sia-task-scheduler)部署
从 github 上 clone 代码仓库并下载源码后,可根据SIA-TASK部署指南,搭建 SIA-TASK 任务调度平台并启动,详见SIA-TASK部署指南
搭建好 SIA-TASK 任务调度平台后,下一步就是 TASK 执行器实例的编写啦。
其次,根据开发文档来编写 TASK 执行器实例并启动。
根据SIA-TASK开发指南,编写了两个 TASK 示例,TASKONE(前置 TASK)和 TASKTWO(后置 TASK),具体开发规则见SIA-TASK开发指南,TASK 示例关键配置即代码在下文有详细展示与介绍。
该示例为 springboot 项目,并且需要通过 POM 文件引入 SIA-TASK 的执行器关键依赖包 sia-task-hunter 来实现 task 执行器的自动抓取,首先需要将 SIA-TASK 源码中的 sia-task-hunter 包用 mvn install 命令打包为 jar 包安装至本地仓库,SIA-TASK 源码中的 sia-task-hunter 包如下图示:


然后就可以进行示例的编写,示例主要包括以下几部分:
配置POM
文件关键依赖
配置文件主要配置项
编写 TASK 执行器主要代码
当编写完 TASK 执行器实例后,启动该执行器所在进程
启动日志如下图:


日志表明该进程正常启动,并且 TASK 执行器信息正常上传至 ZK 当中,
观察 TASK 管理界面,如图示:


从图中可知,TASK 已同步至数据库中。
再次,需要进行 JOB 的创建和 JOB 对 TASK 的关联及配置。
根据使用指南进行如下操作。
创建 JOB,配置参数
在 JOB 管理界面点击添加Job


点击后进入添加Job
界面


选定 Job_Group,尽量选定所要关联的 TASK 所属的 Group 组名。
分别填写 Job 类型及其他项,Job 类型也可以选择 FixRate(特定时间点)类型,本例为 CRON 类型,具体数值为:0/30 * * * * ?,表示从当前时刻开始,每 30 秒执行一次
点击添加
,添加 JOB 成功。
配置 TASK
添加 JOB 成功后,需要为该 JOB 配置相应的 TASK,可配置单个或多个,本例以配置两个级联 TASK 为例。


点击配置TASK
后,进入Task信息配置
界面。


如上图所示,将需要配置的两个 TASK 均拉取至右侧,点击编辑
按钮(铅笔形状),进入 TASK参数配置
界面。
TASKONE 参数配置:


TASKTWO 参数配置:


按图中编辑完成后,点击添加
,成功将 TASKONE 和 TASKTWO 配置至 JOB 中。
添加完毕后,可进行两个 TASK 的依赖关系配置,如下图所示:


用箭头将 TASKONE(前置 TASK)指向 TASKTWO(后置 TASK),即可完成 TASK 之间的依赖关系设置,点击提交,完成整个 JOB 的配置,配置完成后,可点击TASK信息
按钮,查看TASK配置信息详情
,观察该 JOB 的 TASK 配置情况。
TASK配置信息图


TASK配置信息详情


最后,激活 JOB 并观察相应日志。
TASK 配置成功后,点击状态操作
下拉按钮中激活
按钮,激活 JOB。


激活 JOB 后,刷新该界面,可发现该 JOB 列表调度器(红框处)出现调度器 IP 及端口号,表示该 JOB 激活后被该调度器抢占。
先观察管理界面 JOB 及 TASK 日志
成功激活 JOB 后,进入调度日志界面,等待至 JOB 执行时间后,可查看到该 JOB 执行日志,如下图示。


标号 1:代表该 JOB 日志。
标号 2:代表该 JOB 所关联的前置 TASK(TASKONE)日志。
标号 3:代表该 JOB 所关联的后置 TASK(TASKTWO)日志。
标号 4:endTask 为系统追加的一个虚拟 TASK,仅表示该 JOB 的一次调度过程完成。
同时从执行时间也可观察出,每 30 秒调度一次。
再观察执行器 TASK 实例日志
还可观察执行器实例 TASK 日志,验证是否调用成功。


从日志可知,确实调用成功,并且每 30 秒调用一次。
停止 JOB
当需要停止 JOB 时,点击状态操作
下拉按钮中停止
按钮,停止 JOB。


本文仅是对微服务任务调度平台 SIA-TASK 的初步实践使用,通过以上描述,可实现 SIA-TASK 对执行器实例 TASK 实现任务调度的功能,本文中搭建的示例非常简单,适合快速入手 SIA-TASK,当然,SIA-TASK 还有更加强大的任务调度功能,可以应对更加复杂的业务场景,大家可以继续深度使用体验,将 SIA-TASK 的功能点和业务相结合,将其应用至更加复杂的业务场景之下。
本文转载自宜信技术网站。
原文链接:http://college.creditease.cn/detail/263
评论 1 条评论