Appearance
本地磁盘定时任务
基于ztgis-boot定时任务的需求扩展,单独部署的纯定时任务
具有无数据库、独立管理、按需引用等特点
程序结构
程序共分为5个部分
ztgis-disk-job-admin 启动项
业务提供启动项
业务提供启动项,可以使用接口、Job Class 2种模式定时任务
- 1、pom.xml 修改
xml
<dependencies>
<!-- 核心包,必须 -->
<dependency>
<groupId>com.ztgis</groupId>
<artifactId>ztgis-disk-job-core</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<!-- 管理接口,非必需 -->
<dependency>
<groupId>com.ztgis</groupId>
<artifactId>ztgis-disk-job-manage</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
- 2、在业务启动项中启动定时任务
java
@Component
public class DiskJobRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) {
DiskJobRunnerUtils.run();
}
}
- 业务启动项引用ztgis-disk-job-manage模块(非必须)
业务无启动项
使用admin启动项,仅可使用接口模式定时任务(没有位置写Job Class定时任务)
pom配置参考上面按需引用
ztgis-disk-job-core:核心模块
包含定时任务核心功能,拥有独立的 任务调度、任务管理、调度记录等功能
单jar大小仅23k
ztgis-disk-job-manage: 接口管理模块
- 跨域Cors配置
- 接口管理(仅有 任务列表、任务开启、任务关闭3个接口)
- 需与web配合使用,否则无意义
web:管理页面
- 修改接口地址
将web下的html文件内的basePath改为服务部署的地址
接口地址错误,错误提示
- 双击打开html页面,启停定时任务
jobs:定时任务配置
- 程序自动读取工作目录jobs下的json/json5 2种文件
- 接口模式配置
json
{
"id": "testJob3",//不可重复
"fullName": "本地测试定时任务2", //暂无作用
//接口模式
"executeContent": "{\"interfaceType\":\"GET\",\"interfaceUrl\":\"http://192.168.3.105:13000/api/demo/test/job3\",\"parameter\":[]}",
"executeCycleJson": "0/5 * * * * ?", // 执行周期:参考cron
"executeType": "1", //1 接口 2 存储过程 3 job class
}
- Job Class模式配置
需要自定义实现启动项(否则无地方写Job Class) Job Class 的调度日志需要自己实现(调度是在Job内的)
json
{
"id": "testJob4",
"fullName": "本地测试定时任务4",
"executeContent": "{'classUrl':'ztgis.disk.job.job.TestJob','classParameter':[{'key':'a','value':'1'},{'key':'b','value':'demo'}]}",
"executeCycleJson": "0/5 * * * * ?",
"executeType": "3"
}
项目选择
admin | core | manage | web | jobs | 大小 | 功能 | 备注 |
---|---|---|---|---|---|---|---|
✅ | ✅ | ✅ | ✅ | ✅ | 20M | 完整的本地定时任务(启动、定时调度、调度启停管理、调度记录) | |
✅ | ✅ | ✅ | 12M | 启动、定时调度、调度日志 | 不能独立控制任务的启停 | ||
✅ | ✅ | 23k | 定时调度、调度日志 | 1、需要业务提供启动项,并调用DiskJobRunnerUtils.run();启动任务。2、不能独立控制任务的启停 |