Skip to content

本地磁盘定时任务


基于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"
}

项目选择

admincoremanagewebjobs大小功能备注
20M完整的本地定时任务(启动、定时调度、调度启停管理、调度记录)
12M启动、定时调度、调度日志不能独立控制任务的启停
23k定时调度、调度日志1、需要业务提供启动项,并调用DiskJobRunnerUtils.run();启动任务。2、不能独立控制任务的启停