宜信开源|微服务任务调度平台SIA-TASK入手实践

栏目: 后端 · 发布时间: 5年前

内容简介:最近宜信开源微服务任务调度平台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属于分布式的任务调度平台,使用起来简单方便,非常容易入手,部署搭建好SIA-TASK任务调度平台之后,编写TASK后配置JOB进行调度,进而实现整个调度流程。本文新建了JOB示例,该JOB关联了前后级联的两个TASK,TASKONE(前置TASK)和TASKTWO(后置TASK),主要阐述一个JOB怎样关联配置两个级联TASK,以及该JOB是如何通过SIA-TASK实现任务调度,最终实现对两个TASK执行器的调用。

首先,根据部署文档来搭建任务调度平台。

源码地址: https://github.com/siaorg/sia...

官方文档: https://github.com/siaorg/sia...

任务调度平台主要由任务编排中心、任务调度中心以及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包如下图示:

宜信开源|微服务任务调度平台SIA-TASK入手实践

然后就可以进行示例的编写,示例主要包括以下几部分:

配置 POM 文件关键依赖

<!-- 此处添加个性化依赖(sia-task-hunter) -->
          <dependency>
            <groupId>com.sia</groupId>
            <artifactId>sia-task-hunter</artifactId>
            <version>1.0.0</version>
          </dependency>

配置文件主要配置项

# 项目名称(必须)
  spring.application.name: onlinetask-demo
  
  # 应用端口号(必须)
  server.port: 10086
  
  # zookeeper地址(必须)
  zooKeeperHosts: *.*.*.*:2181,*.*.*.*:2181,*.*.*.*:2181
  
  # 是否开启 AOP 切面功能(默认为true)
  spring.aop.auto: true
  
  # 是否开启 @OnlineTask 串行控制(如果使用则必须开启AOP功能)(默认为true)(可选)
  spring.onlinetask.serial: true

编写TASK执行器主要代码

@Controller
public class OpenTestController {

    @OnlineTask(description = "success,无入参",enableSerial=true)
    @RequestMapping(value = "/success-noparam", method = { RequestMethod.POST }, produces = "application/json;charset=UTF-8")
    @CrossOrigin(methods = { RequestMethod.POST }, origins = "*")
    @ResponseBody
    public String taskOne() {
        Map<String, String> info = new HashMap<String, String>();
        info.put("result", "success-noparam");
        info.put("status", "success");
        System.out.println("调用taskOne任务成功");

        return JSONHelper.toString(info);
    }

    @OnlineTask(description = "success,有入参",enableSerial=true)
    @RequestMapping(value = "/success-param", method = { RequestMethod.POST }, produces = "application/json;charset=UTF-8")
    @CrossOrigin(methods = { RequestMethod.POST }, origins = "*")
    @ResponseBody
    public String taskTwo(@RequestBody String json) {
        Map<String, String> info = new HashMap<String, String>();
        info.put("result", "success-param"+"入参是:"+json);
        info.put("status", "success");
        System.out.println("调用taskTwo任务成功");

        return JSONHelper.toString(info);
    }

}

当编写完TASK执行器实例后,启动该执行器所在进程

启动日志如下图:

宜信开源|微服务任务调度平台SIA-TASK入手实践

日志表明该进程正常启动,并且TASK执行器信息正常上传至ZK当中,

观察TASK管理界面,如图示:

宜信开源|微服务任务调度平台SIA-TASK入手实践

从图中可知,TASK已同步至数据库中。

再次,需要进行JOB的创建和JOB对TASK的关联及配置。

根据 使用指南 进行如下操作。

创建JOB,配置参数

在JOB管理界面点击 添加Job

宜信开源|微服务任务调度平台SIA-TASK入手实践

点击后进入 添加Job 界面

宜信开源|微服务任务调度平台SIA-TASK入手实践

选定Job_Group,尽量选定所要关联的TASK所属的Group组名。

分别填写Job类型及其他项,Job类型也可以选择FixRate(特定时间点)类型,本例为CRON类型,具体数值为:0/30 ?,表示从当前时刻开始,每30秒执行一次

点击 添加 ,添加JOB成功。

配置TASK

添加JOB成功后,需要为该JOB配置相应的TASK,可配置单个或多个,本例以配置两个级联TASK为例。

宜信开源|微服务任务调度平台SIA-TASK入手实践

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

宜信开源|微服务任务调度平台SIA-TASK入手实践

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

TASKONE参数配置:

宜信开源|微服务任务调度平台SIA-TASK入手实践

TASKTWO参数配置:

宜信开源|微服务任务调度平台SIA-TASK入手实践

按图中编辑完成后,点击 添加 ,成功将TASKONE和TASKTWO配置至JOB中。

添加完毕后,可进行两个TASK的依赖关系配置,如下图所示:

宜信开源|微服务任务调度平台SIA-TASK入手实践

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

TASK配置信息图

宜信开源|微服务任务调度平台SIA-TASK入手实践

TASK配置信息详情

宜信开源|微服务任务调度平台SIA-TASK入手实践

最后,激活JOB并观察相应日志。

TASK配置成功后,点击 状态操作 下拉按钮中 激活 按钮,激活JOB。

宜信开源|微服务任务调度平台SIA-TASK入手实践

激活JOB后,刷新该界面,可发现该JOB列表调度器(红框处)出现调度器IP及端口号,表示该JOB激活后被该调度器抢占。

先观察管理界面JOB及TASK日志

成功激活JOB后,进入调度日志界面,等待至JOB执行时间后,可查看到该JOB执行日志,如下图示。

宜信开源|微服务任务调度平台SIA-TASK入手实践

标号1:代表该JOB日志。

标号2:代表该JOB所关联的前置TASK(TASKONE)日志。

标号3:代表该JOB所关联的后置TASK(TASKTWO)日志。

标号4:endTask为系统追加的一个虚拟TASK,仅表示该JOB的一次调度过程完成。

同时从执行时间也可观察出,每30秒调度一次。

再观察执行器TASK实例日志

还可观察执行器实例TASK日志,验证是否调用成功。

宜信开源|微服务任务调度平台SIA-TASK入手实践

从日志可知,确实调用成功,并且每30秒调用一次。

停止JOB

当需要停止JOB时,点击 状态操作 下拉按钮中 停止 按钮,停止JOB。

宜信开源|微服务任务调度平台SIA-TASK入手实践

本文仅是对微服务任务调度平台SIA-TASK的初步实践使用,通过以上描述,可实现SIA-TASK对执行器实例TASK实现任务调度的功能,本文中搭建的示例非常简单,适合快速入手SIA-TASK,当然,SIA-TASK还有更加强大的任务调度功能,可以应对更加复杂的业务场景,大家可以继续深度使用体验,将SIA-TASK的功能点和业务相结合,将其应用至更加复杂的业务场景之下。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

爆款:如何打造超级IP

爆款:如何打造超级IP

【美】安妮塔•埃尔伯斯 / 杨雨 / 中信出版社 / 2016-1-10 / 49

哈佛商学院IP运营与产品管理方法论第一书,翻转长尾理论的重要著作! 电影大片、当红炸子鸡、百万畅销书背后的运营逻辑是什么? 《五十度灰》、Lady Gaga、维多利亚的秘密有何共同秘密? 漫威如何将蜘蛛侠、X战警、绿巨人打造成金矿? 皇马如何打造体育IP,一跃成为全球收 入最高的足球俱乐部? 爆款策略如何运用于电影、电视、音乐、出版、体育与商业各领域? ----......一起来看看 《爆款:如何打造超级IP》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

SHA 加密
SHA 加密

SHA 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具