写点什么

微服务任务调度平台 SIA-TASK 入手实践

  • 2020-02-10
  • 本文字数:2473 字

    阅读完需:约 8 分钟

微服务任务调度平台SIA-TASK入手实践

引言

最近宜信开源微服务任务调度平台 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 包如下图示:



1560826579812044445.png


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

配置POM文件关键依赖


<!-- 此处添加个性化依赖(sia-task-hunter) -->

复制代码

配置文件主要配置项

  \# 项目名称(必须)    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
复制代码

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

启动日志如下图:


1560826601326076741.png



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


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



1560826607684074537.png


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

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

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

创建 JOB,配置参数

在 JOB 管理界面点击添加Job



1560826621179016006.png


点击后进入添加Job界面



1560826626992001214.png


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


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


点击添加,添加 JOB 成功。

配置 TASK

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



1560826633981048977.png


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



1560826639418030090.png


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


TASKONE 参数配置:


1560826645197090958.png



TASKTWO 参数配置:



1560826651281088101.png


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


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



1560826657191054832.png


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


TASK配置信息图



1560826662627066742.png


TASK配置信息详情


1560826668130011948.png


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

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


1560826674169018583.png



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

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

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



1560826679884048317.jpg


标号 1:代表该 JOB 日志。


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


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


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


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

再观察执行器 TASK 实例日志

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



1560826685943047193.png


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

停止 JOB

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


1560826691633009380.png



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


本文转载自宜信技术网站。


原文链接:http://college.creditease.cn/detail/263


2020-02-10 21:081377

评论 1 条评论

发布
用户头像
推荐一个强大的分布式任务调度与计算框架PowerJob,支持CRON、API、固定频率、固定延迟等多种调度策略,支持MapReduce分布式计算,支持工作流任务编排(DAG),功能强大,文档齐全,接入简单!
项目地址:https://github.com/KFCFans/PowerJob
2020-11-08 12:01
回复
没有更多了
发现更多内容

《算法导论(第4版)》阅读笔记:p49-p58

codists

算法

联想百应智能体新升级,卡位AI战局的“锁钥之地”

脑极体

AI

Apache Seatunnel &amp; Amazon Bedrock 助力生成式 AI 应用规模化生产实践

亚马逊云科技 (Amazon Web Services)

在Oracle到GreatSQL迁移中排序规则改变引发的乱码问题分析及解决

GreatSQL

LLM“力大砖飞”的时代,OCR专有模型还有意义吗?

合合技术团队

算法 OCR 大模型 #人工智能

2025杭州国际安防产品展会(杭州安博会)团队走进石家庄宣传

AIOTE智博会

安防展 安博会 浙江安博会 杭州安博会

腾讯云与宝德计算深化战略合作,打造融合创新生态标杆

极客天地

就在下周丨中煤科工、山东临工 、中国农机院、中建科…共探离散元仿真技术新视界

Altair RapidMiner

仿真 CAE 离散元仿真 工程机械 颗粒仿真

得物自研DSearch3.0搜索核心引擎升级之路

得物技术

搜索引擎

提高敏捷性,塑造财务规划的未来趋势

智达方通

企业管理 全面预算管理 财务管理

链上交易平台 MyStonks 上线美股代币链上市场,首批 5000 万美元美股资产由富达托管

TechubNews

Playwright和Selenium,深度解析两大测试框架的“王者之争”

测试人

软件测试 playwright selenium

Note16新机594元起,魅族要“逆天”?

趣解商业

科技 汽车 魅族 数码

Blender 入门教程(二):纹理绘制

北桥苏

建模 blender

最新日程!Altair 区域技术交流会华东站:邀您共探仿真智能化实践

Altair RapidMiner

人工智能 AI 数字孪生 仿真 CAE

华为音乐携手库客音乐,共筑高品质古典音乐新生态

最新动态

微店平台中关键词获取商品详情数据采集实例演示

代码忍者

微店API

佛山市南海区委书记顾耀辉一行莅临能飞航空,共探低空经济发展新局

科技热闻

DotNet 入门(二):项目运行

北桥苏

.net

AI题库APP的核心功能

北京木奇移动技术有限公司

AI技术 题库系统 软件外包公司

MCP教程:一文教你用 Trae 实现网页自动化测试

TRAE.ai

计算机 #程序员 Trae

蒙纳宣布收购韩国知名字体公司DESIGN210,推动高质量字体全球化

财见

Uniapp开发鸿蒙购物项目实战教程:实现首页轮播图

幽蓝计划

鸿蒙跨平台开发

使用 Databend 全新体验!一文看懂 Databend 可视化管控平台 BendDeploy

Databend

5月15日,向量数据库:数据库与AI的交叉点”线上技术直播,文附详细演讲介绍!

NineData

AI Milvus 向量数据库 NineData 数据库与 AI 的交叉点

Blender 入门教程(一):模型创建

北桥苏

blender

中小企业怎么低成本实现智能改造,数字化转型?

积木链小链

数字化转型 智能制造 中小企业

CST软件如何截取部分封装或者PCB进行仿真

思茂信息

cst操作 电磁仿真 CST Studio Suite

哈尔滨等保测评、等保测评公司、机构怎么选

黑龙江陆陆信息测评部

MCP 协议为何不如你想象的安全?从技术专家视角解读

Baihai IDP

程序员 AI LLM AI Agent MCP协议

坚守安全高底线,2025奇瑞汽车安全之夜盛大启幕

科技热闻

微服务任务调度平台SIA-TASK入手实践_开源_李兴胜_InfoQ精选文章