Spring Boot 3 集成Xxl-job 3.0.0 单机

下载Xxl-job项目

  1. https://gitee.com/xuxueli0323/xxl-job
  2. https://github.com/xuxueli/xxl-job

创建相关数据库

  1. 数据库文件再/xxl-job/doc/db/tables_xxl_job.sql直接在数据库中运行SQL文件即可创建相关数据库

配置调度中心

  1. 打开项目找到 xxl-job-admin模块
  2. 找到/xxl-job/xxl-job-admin/src/main/resources/application.properties配置文件
yaml 复制代码
### web 启动的端口号,看看是否需要更改 更改后 注册执行器时,admin地址的端口需要该端口保持一致
server.port=8080
server.servlet.context-path=/xxl-job-admin
### 调度中心JDBC链接:上面步骤2创建的数据库的地址
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
###记得看看数据库账号是不是root 不是需要修改
spring.datasource.username=root
###记得修改密码
spring.datasource.password=root_pwd
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
### 报警邮箱
spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.username=xxx@qq.com
spring.mail.password=xxx
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
### 调度中心通讯TOKEN [选填]:非空时启用;
xxl.job.accessToken=
### 调度中心通讯超时时间[选填],单位秒;默认3s;
xxl.job.timeout=3
### 调度中心国际化配置 [必填]: 默认为 "zh_CN"/中文简体, 可选范围为 "zh_CN"/中文简体, "zh_TC"/中文繁体 and "en"/英文;
xxl.job.i18n=zh_CN
## 调度线程池最大线程配置【必填】
xxl.job.triggerpool.fast.max=200
xxl.job.triggerpool.slow.max=100
### 调度中心日志表数据保存天数 [必填]:过期日志自动清理;限制大于等于7时生效,否则, 如-1,关闭自动清理功能;
xxl.job.logretentiondays=30
  1. 配置完后即可启动项目
  1. 打开可视化界面
    1. 本地启动则地址 http://127.0.0.1:8080/xxl-job-admin
    2. 服务器启动则地址为http://服务器IP地址:端口号/xxl-job-admin
  2. 初始账户密码为
    1. admin
    2. 123456

即可登录成功

配置执行器

在自己的项目中

引入maven

plain 复制代码
<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>${xxl-job.version}</version> // 版本号 如 3.0.0 2.4.2
</dependency>

添加配置文件

yaml 复制代码
xxl:
  job:
    admin:
      addresses: http://127.0.0.1:8080/xxl-job-admin
      accessToken: default_token
    executor:
      appName: xxl-job-executor-${spring.application.name}
      address: http://127.0.0.1:8081
      ip: 127.0.0.1
      port: 8081
      logPath: ./logs/xxl-job/jobHandler
      logRetentionDays: 30

创建配置类

plain 复制代码
@Slf4j
@Configuration
public class XxlJobConfig {

    @Value("${xxl.job.admin.addresses}")
    private String adminAddresses;

    @Value("${xxl.job.admin.accessToken}")
    private String accessToken;

    @Value("${xxl.job.executor.appName}")
    private String appName;

    @Value("${xxl.job.executor.address}")
    private String address;

    @Value("${xxl.job.executor.ip}")
    private String ip;

    @Value("${xxl.job.executor.port}")
    private int port;

    @Value("${xxl.job.executor.logPath}")
    private String logPath;

    @Value("${xxl.job.executor.logRetentionDays}")
    private int logRetentionDays;


    @Bean
    public XxlJobSpringExecutor xxlJobExecutor() {
        log.info(">>>>>>>>>>> xxl-job config init.");
        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
        xxlJobSpringExecutor.setAppname(appName);
        xxlJobSpringExecutor.setAddress(address);
        xxlJobSpringExecutor.setIp(ip);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
//        xxlJobSpringExecutor.setTimeout(timeout);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
        return xxlJobSpringExecutor;
    }
}

启动项目即可

测试用法

plain 复制代码
@Component
@Slf4j
public class DemoJob {

    @XxlJob("demoJobHandler")
    public void demoJobHandler() {
        log.info("XXL-JOB, Hello World.");
    }
}

启动调度任务

打开可视化管理界面

查看执行器是否注册成功 出现OnLine机器地址,即可使用

在任务管理创建调度任务

配置 保存,然后启动即可

相关推荐
牛奔2 分钟前
Go 是如何做抢占式调度的?
开发语言·后端·golang
颜酱7 分钟前
二叉树遍历思维实战
javascript·后端·算法
符哥200810 分钟前
C++ 进阶知识点整理
java·开发语言·jvm
Sayuanni%322 分钟前
初阶_多线程1(线程含义与关键属性)
java
程序媛徐师姐23 分钟前
Java基于微信小程序的模拟考试系统,附源码+文档说明
java·微信小程序·java模拟考试系统小程序·模拟考试微信小程序·模拟考试系统小程序·模拟考试小程序·java模拟考试小程序
爱装代码的小瓶子31 分钟前
【C++与Linux基础】进程间通讯方式:匿名管道
android·c++·后端
疯狂敲代码的老刘33 分钟前
JDK 1.6到25 全版本网盘合集 (Windows + Mac + Linux)
java·linux·windows·macos·jdk
夕除34 分钟前
js--15
java·jvm·spring
曾经的三心草39 分钟前
redis-9-集群
java·redis·mybatis
程序员良许40 分钟前
嵌入式处理器架构
后端·单片机·嵌入式