springboot2 xxl-job 调度中心

1,下载自己需要的版本

1,https://github.com/xuxueli/xxl-job
2,https://gitee.com/xuxueli0323/xxl-job/releases (墙内推荐)
3,墙内网络推荐使用第二个地址,笔者下 2.2.0 版本

springboot2 xxl-job 调度中心

2,整合到自己的项目

将下载好的项目中 xxl-job-admin 拷贝到自己的 springcloud 项目中
创建相应的数据库并执行脚本:xxl-job\doc\db\tables_xxl_job.sql

1,修改 pom 文件依赖

    4.0.0

        org.springframework.boot
        spring-boot-starter-parent
        2.3.5.RELEASE

    com.hwq
    sc-xxl-job-admin
    1.0.0
    jar

            org.springframework.boot
            spring-boot-starter-web

            org.springframework.boot
            spring-boot-starter-freemarker

            org.springframework.boot
            spring-boot-starter-mail

            org.springframework.boot
            spring-boot-starter-actuator

            mysql
            mysql-connector-java

            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.1.1

            com.xuxueli
            xxl-job-core
            2.2.0

            org.springframework.boot
            spring-boot-starter-test
            test

        sc-xxl-job-admin

                org.springframework.boot
                spring-boot-maven-plugin

2,修改配置文件参考

application.yml

server:
  # 端口
  port: 1081
  # Servlet 访问项目名
  servlet:
    context-path: /xxl-job-admin

spring:
  mvc:
    servlet:
      # 加载 DispatcherServlet 的启动优先级
      load-on-startup: 0
    # 接管的静态资源路由规则
    static-path-pattern: /static/**
  resources:
    # 静态资源路径
    static-locations: classpath:/static/
  freemarker:
    # 模板地址
    template-loader-path: classpath:/templates/
    # 模板后缀
    suffix: .ftl
    # 字符编码
    charset: UTF-8
    # HTTP 请求对象的对象名称
    request-context-attribute: request
    settings:
      number_format: 0.##########
  # 数据源
  datasource:
    url: jdbc:mysql://192.168.200.100:3306/xxljob
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 920619
  # 邮件配置
  mail:
    host: smtp.163.com
    port: 25
    username: 17600909499@163.com
    password: FYZOEDLNWIHRBTQY

mybatis:
  # XML 映射地址
  mapper-locations: classpath:/mybatis-mapper/*Mapper.xml

xxl:
  job:
    # 鉴权值
    accessToken: huangweiqiang
    # 语言包: zh_CN 中文、zh_TC 台湾、en 英文
    i18n: zh_CN
    # 触发池最大值
    triggerpool:
      fast:
        max: 200
      slow:
        max: 100
    # 日志保留日(单位:天)
    logretentiondays: 30

健康检查
management:
  server:
    servlet:
      context-path: /actuator
  health:
    mail:
      enabled: false
3,运行,访问

1,访问地址:192.168.200.100:1081/xxl-job-admin
2,默认的账号密码:admin/123456

3,执行器配置

pom 依赖


    com.xuxueli
    xxl-job-core

配置文件

xxl:
  job:
    admin:
      # 调度中心服务端地址
      addresses: http://127.0.0.1:1081/xxl-job-admin
    # 鉴权值
    accessToken: huangweiqiang
    executor:
      # 执行器的名称
      appname: ${spring.application.name}
      # 执行器的 IP
      ip: ${spring.cloud.client.ip-address}
      # 执行器的 端口
      port: 2121
      # 执行器日志的保存路径
      logpath: ${user.dir}/z-file/logging/${spring.application.name}/job
      # 执行日志的保存时间
      logretentiondays: 30

在方法上添加 @XxlJob 注解就变成了执行器

package com.hwq.admin.back.executor;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.hwq.common.model.dto.TestDTO;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class TestExecutor {

    @Autowired
    private ObjectMapper objectMapper;

    @XxlJob("test/test1")
    public ReturnT test1(String param) throws JsonProcessingException {
        TestDTO testDTO = objectMapper.readValue(param, TestDTO.class);
        System.out.println(testDTO);
        return new ReturnT<>(ReturnT.SUCCESS_CODE, "调度执行成功");
    }

    @XxlJob("test/test2")
    public ReturnT test2(String param) throws JsonProcessingException {
        TestDTO testDTO = objectMapper.readValue(param, TestDTO.class);
        System.out.println(testDTO);
        return new ReturnT<>(ReturnT.SUCCESS_CODE, "调度执行成功");
    }

}

4,页面配置

1,添加执行器

springboot2 xxl-job 调度中心
2,添加任务

springboot2 xxl-job 调度中心
3,配置串行任务的思路

在日常开发中,我们的调度所需的数据来源可能会依赖另一个调度的结果,这是我们一般会采取两种解解决方式:
1,估算依赖调度的执行时间,将调度时间配置到依赖调度执行完成后的时间
2,将调度作为依赖调度的子任务,配置串行任务
从上图的配置我们可以看出,xxl-job 是支持配置串行任务的
具体配置思路:将一个调度作为另一个调度的子任务,任意填写一个 cron,然后状态设置为停止

Original: https://www.cnblogs.com/lovling/p/14172667.html
Author: 被遗忘的优雅
Title: springboot2 xxl-job 调度中心

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/541037/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 戏说领域驱动设计(九)——架构模式

    本节开始进入DDD的战术阶段,首先要讲解的必然是DDD中的架构,毕竟程序员就喜欢这个……不过这里的架构不同于我们常说的微服务架构、单体架构、无服务架构或服务…

    Java 2023年6月7日
    085
  • Vue中生成UUID

    {{elId}} shuaxun import {v4} from ‘uuid’ // npm install -S uuid export default { data () {…

    Java 2023年6月8日
    0100
  • RabbitMQ镜像队列集群搭建、与SpringBoot整合

    服务器IP hostname 节点说明 端口 管控台地址 192.168.2.121 zhouhong121 rabbitmq master 5672 http://192.168…

    Java 2023年6月13日
    0107
  • Docker容器里时间与宿主机不同步

    第一种: Dockerfile文件中添加一行:RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime或者 第二种: 进入到容…

    Java 2023年6月7日
    070
  • Vuex 简单使用

    官网:https://vuex.vuejs.org/zh/ 参考文章:https://www.cnblogs.com/chinabin1993/p/9848720.html Vue…

    Java 2023年6月13日
    065
  • 《Java2 实用教程(第五版)》教学进程

    《Java2 实用教程(第五版)》教学进程 目录 《Java2 实用教程(第五版)》教学进程 预备作业1:你期望的师生关系是什么? 预备作业2 :学习基础和C语言基础调查 预备作业…

    Java 2023年5月29日
    098
  • 数组扩展(Java)

    Arrays类 基本介绍 数组的工具类java.util.Arrays 由于数组本身中没有什么方法可供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象…

    Java 2023年6月9日
    078
  • J SpringMVC零XML配置 springboot的方式思考

    SpringMVC基础配置(通过注解配置,非xml配置)_江南一点雨的专栏-CSDN博客https://blog.csdn.net/u012702547/article/detai…

    Java 2023年5月29日
    065
  • SpringBoot嵌入pentaho-kettle工具实现数据trans转换和job任务手动执行

    1、拉取代码后,maven依赖环境下载 2、下载pentaho-kettle的zip包:https://sourceforge.net/projects/pentaho/files…

    Java 2023年5月30日
    0133
  • 关于Git的使用

    一、Git介绍 1.Git是什么? Git是一个免费的、开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 2.Git能做什么? 从服务器上克隆完整的Gi…

    Java 2023年6月9日
    080
  • spring 使用异步任务

    1.说明 在springboot 中使用 @Async 实现异步任务处理,下面介绍一下如何实现这个。 2.实现代码 2.1 增加@EnableAsync @EnableAsync …

    Java 2023年5月30日
    078
  • Nginx的简单配置(可直接使用)

    error_log logs/error.log; 全局错误日志定义类型error_log logs/error.log notice; error_log logs/error….

    Java 2023年6月16日
    083
  • Eclipse画UML图

    1.AmaterasUML的安装 参考Eclipse中安装AmaterasUML就可以画UML图了。 方式1:安装AmaterasUML插件(推荐) 方式2:将下载好的jar包放入…

    Java 2023年6月15日
    095
  • Maven 依赖调解源码解析(六):dependencyManagement 版本锁定

    我们在根模块 mavenDependencyDemo 中,用 dependencyManagement 的形式直接指定 X 的版本为 2.0。同时,A 依赖 C,而 C 依赖了 X…

    Java 2023年6月16日
    092
  • JavaSE前期准备2

    环境配置:JDK安装 版本 发行 开源与否 许可 优势 Oracle JDK版本 三年一发 并不是完全开源的,不会为即将发布的版本提供长期支持,用户每次都要通过更新到最新版本获得支…

    Java 2023年6月5日
    070
  • 双缓冲绘图

    双缓冲绘图 大家小时候都玩过飞机大战吧,当我们在玩这种飞行射击类游戏时,背景图总是不断地向下移动的,从而给我们营造出一种飞机正在向前飞行的游戏体验。那么,图片的快速变化是如何实现的…

    Java 2023年6月5日
    078
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球