# HOS-JOB 分布式任务调度平台
# 概述
- HOS-JOB是HOS基础平台基于XXL-JOB开源组件二次开发的分布式任务调度平台。
- XXL-JOB官网:https://www.xuxueli.com/xxl-job/
- 请到官网仔细阅读文档,基础使用、基本概念将不在本章节讲解。本章节重点讲解如何在hos-mediway平台接入并使用
- HOS-JOB服务由两部分组成:任务调度中心 和 执行器。
任务调度中心为单独启动的SpringBoot服务,包括完整的前端与后端,统一管理任务调度平台上调度任务, 负责触发调度执行,并且提供任务管理平台。
执行器为定时任务具体执行服务,与其他中间件集成方式相同,集成到
hos-runner
中,随工程启动
# 使用示例
# 工程目录
- 打开工程,找到hos-framework下的目录
- 其中
framework-job-admin
是HOS-JOB中间件后台,集成进了hos-mediway中
# 开启HOS-JOB任务调度中心
# 1、新建数据库并执行对应sql文件
数据库文件位置:
# 2、修改配置文件
配置文件位置为:
# 3、启动 framework-job-admin
# 4、访问 : http://localhost:8080/xxl-job-admin
默认账号密码为:admin 123456
登录成功后界面如下
# 接入 HOS-JOB客户端(执行器)
# 引入依赖
<dependency>
<groupId>com.mediway.hos</groupId>
<artifactId>hos-framework-job-starter</artifactId>
</dependency>
# 配置项说明
执行器的配置项经本地化改造,与其他组件采用相同风格,使用framework.job
配置项。
其具体项目以及描述如下:
framework:
job:
admin:
### 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
addresses: http://127.0.0.1:8080/hos-job-admin
### 执行器通讯TOKEN [选填]:非空时启用;
accessToken:
### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
executor:
appname: hos-job-executor-sample
### 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
### 执行器单独启用端口与调度中心做交互,和web端口不相同
address:
### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
ip:
### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
port: 9999
### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
logpath: /data/applogs/hos-job/jobhandler
### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
logretentiondays: 30
# 启动项目
启动主程序hos-runner
# 打开调度中心的 执行器管理 ,可以看到我们的执行器已经注册成功
注意:hos-Job的自动注册为自动注册在线机器,需要先在执行器中存在该执行器(注册方式为`自动注册`)才可注册成功
除此之外,如果我们有多个执行器,启动后都可以进行手动注册的方式注册到调度中心
# 定时任务创建
前提:请确认“调度中心”和“执行器”项目已经成功部署并启动;
# 步骤一:任务开发
定时任务示例demoExampleJobHandler
所在位置:
代码:
# 步骤二:新建任务
切换到任务管理
点击新建创建新的定时任务
详细任务配置说明请参考:XXL-JOB官方文档-三、任务详解 (opens new window)
# 步骤三:手动执行一次任务
# 步骤四:查看日志
- 切换到调度日志
- 任务执行完成后的日志
- 点击
执行日志
可查看日志内容
- 再次调用,并打上断点,可以看到正确进入的断点并且获取到到任务参数相匹配,说明任务执行成 功
# 后记
- demo已经接入完毕,后续的操作就需要大家认真阅读官方文档,并且动手操作试验了!~
# 常见问题
- 执行器所在的工程已经正常启动,但未注册成功
查看执行器列表中是否有配置项framework.job.executor.appname
对应的执行器存在,对应如图位置
若不存在对应执行器,需要手动新建执行器