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

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

内容简介:最近宜信开源微服务任务调度平台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的功能点和业务相结合,将其应用至更加复杂的业务场景之下。


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

查看所有标签

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

Mobilizing Web Sites

Mobilizing Web Sites

Layon, Kristofer / 2011-12 / 266.00元

Everyone has been talking about the mobile web in recent years, and more of us are browsing the web on smartphones and similar devices than ever before. But most of what we are viewing has not yet bee......一起来看看 《Mobilizing Web Sites》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具