乐趣区

关于java:奶爸级教学XXLJOB-分布式任务调度框架轻松上手

为什么应用

对于定时工作,各种框架档次不穷,但通过比照最终一句话总结:xxl-job 配置更简略,且性能更弱小 。所以这就是咱们应用它的起因,而接下来以疾速上手为例,不做太多其余性能解说,只为疾速应用开发

开始工作

  • 首先从官网中间接下载整个工程的 zip 压缩包
  • Gitee 地址:https://gitee.com/xuxueli0323/xxl-job
  • Github 地址 : https://github.com/xuxueli/xxl-job/
  • 解压文件后,进入文件目录 doc → db 获取 tables_xxl_job.sql 文件在数据库中进行执行,该文件会主动创立工程所依赖的 xxl_job 数据库及相干表

工程构造

  • xxl-job-admin:能够看作治理各个工作的管理器,相似于微服务中的 Nacos(服务注册核心)
  • xxl-job-core : 公共依赖局部 (临时疏忽)
  • xxl-job-executor-samples : 该模块下寄存着俩个能够间接运行的模板

xxl-job-executor-sample-frameless:传统的执行程序
xxl-job-executor-sample-springboot:整合了 SpringBoot 的程序(举荐)

接下来咱们以整合了 SpringBoot 的模板中进行操作,次要操作的文件如图所示

如何编写

这里咱们次要解说 Bean 模式的编写,该模式能够通过 @XxlJob(“ 工作名称 ”) 将每个自定义办法变成咱们须要执行的工作,有点相似于 MVC 中的 @RequestMapping 将每个办法变成对应前端申请的控制器一样。

@Component
public class SampleXxlJob {
    int time = 0;  // 记录执行次数
    
    // 定义一个名为 TaskDemo 的定时工作
    @XxlJob("TaskDemo")
    public void TaskDemo() throws Exception {
        // XxlJobHelper.log 办法能够将办法中的内容输入到前台日志进行查看
        System.out.println("TaskDemo 开始执行第" + time + "次"); // 控制台输入
        XxlJobHelper.log("TaskDemo 开始执行第" + time + "次");  // 日志输入
        System.out.println("----------------------------------------");
        time++;
    }
}

进入后盾

  • 首先进入到 xxl-job-admin 模块下更改 application.properties 文件中数据库地址的配置内容 (留神这里要链接运行过 tables_xxl_job.sql 文件,或者存在该文件中所创立的表的数据库)
### xxl-job, datasource
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  • 接着在后盾启动 xxl-job-admin 模块,在浏览器中输出默认地址 http://localhost:8080/xxl-job-admin/toLogin
    用户名 admin(默认)
    明码 123456(默认)
  • 次要导航性能如图所示 👇
  • < 运行报表 > 中,它会记录配置好的工作个数,不论启动没启动
  • 点击 < 工作治理 >,能够看到有一个默认的工作配置,点击 < 新增 > 按钮,将咱们本人编写的工作配置进去,具体配置如图所示

    特别强调,JobHandle 中填写的是咱们在 @XxlJob 注解中所对应的值,用来确定咱们想要调用的办法, 红色的为必选项,其余的有就填写,没有就默认
    其中 Cron 是一种专门设置工夫的表达式,大家感兴趣能够学一学,也能够间接点击依照外面的选项进行抉择,增加后就会多一个定时工作

启动定时工作

  • 进入到刚刚咱们编写的 xxl-job-executor-sample-springboot 模块,启动工程。
  • 进入到后盾,点击 < 操作 >,如果点击 < 启动一次 >,那么编写的办法只会执行一次,且咱们设置的 Cron 工夫条件也会生效,点击 < 启动 > 则依照咱们配置好的运行

控制台后果如图所示

  • 点击 < 调度日志 > 能够看到工作每执行一次就会生成一个日志记录,点击 < 操作 > 再点击 < 执行日志 > 能够看到咱们输出到日志当中的内容, 特地要阐明的是,如果咱们的程序出现异常,异样信息将输入到日志当中,并不会返回到控制台。 这个是默认的,咱们并没有进行配置
  • 日志内容如图所示📕

这就是一个简略的基于 XXL-JOB 的定时示例,更多具体配置大家能够看官网,文档写的十分分明

我是 Haoo,编程界的沈腾,撰写乏味的文章。
如果这篇文章帮忙到你,请珍藏⭐点赞👍加关注👀,跟踪不迷路 (🌻◡‿◡)

退出移动版