Springboot与xxl-job

一、下载xxl-job项目

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

从GitHub上面将项目clone下来,如果网络问题导致速度慢也可以从Gitee上面拉取:

运行项目下doc/db/tables_xxl_job.sql文件,创建需要的表。

打开xxl-job-admin模块,在application.properties中进行后台的配置

修改配置后启动XxlJobAdminApplication类,访问http://localhost:8080/xxl-job-admin 默认账户admn,密码123456。

进来就可以看到主界面了

运行项目中自带的定时任务案例。

在任务管理中查看到对应的任务信息。

设置定时任务执行规则,这里设置每10秒运行一次。

启动任务运行一段时间后停止。

查看调度日志,可以看到每10秒执行一次。

二、在自己的项目中添加xxl-job

添加依赖

XML 复制代码
        <dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
            <version>2.4.1</version>
        </dependency>

将xxl-job案例中配置复制当自己项目中。

bash 复制代码
logging:
  level:
    org:
      flowable: debug
  config: classpath:logback.xml

### xxl-job相关配置
### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl:
  job:
    admin:
      addresses: http://127.0.0.1:8080/xxl-job-admin
    accessToken: default_token
    executor:
      appname: xxl-job-executor-ywz
###      ip:
###      address:
      port: 9999
      logpath: /data/applogs/xxl-job/jobhandler
      logretentiondays: 30
java 复制代码
package org.example.flowabledemo2.config;

import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * xxl-job config
 *
 * @author xuxueli 2017-04-28
 */
@Configuration
public class XxlJobConfig {
    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);

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

    @Value("${xxl.job.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() {
        logger.info(">>>>>>>>>>> xxl-job config init.");
        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
        xxlJobSpringExecutor.setAppname(appname);
        // xxlJobSpringExecutor.setAddress(address);
        // xxlJobSpringExecutor.setIp();
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);

        return xxlJobSpringExecutor;
    }

}

编写一个定时任务。

java 复制代码
@Component
public class MySchedule {

    @XxlJob("test")
    public void test() {
        System.out.println("执行任务:" + LocalDateTime.now());
    }
}

在任务调度中心新增执行器

在任务管理中新增任务

启动任务进行测试,可以看到任务每10秒执行一次。

相关推荐
许彰午7 小时前
52-useWebSocket自动重连
java·低代码·架构
青山木7 小时前
RocketMQ 入门到原理(一):整体架构与消息的生命周期
java·分布式·后端·中间件·架构·rocketmq
黑马程序员毕设7 小时前
基于微信小程序的二手交易平台设计与实现报告
前端·人工智能·spring boot·后端·考研
xcl09257 小时前
上海24小时自助健身房系统软件开发实战与架构解析
java·spring boot
苏渡苇7 小时前
Spring Insight 里如何把 Span 收成一条链路
spring boot·spring·spring cloud·系统监控·apm
张宜强7 小时前
023 SpringBoot实现萌宠集市
java·课程设计
花哥码天下7 小时前
docker流水线
java
十二同学啊8 小时前
Drools规则引擎:让复杂业务规则从代码中解耦
java·后端·开源
熊猫猫猫猫猫猫8 小时前
Lambda Fusion:面向企业级应用与 AI 智能体开发的开源微服务框架
spring boot
周先生FullStack8 小时前
Mac + 容器本地 MySQL/Redis 环境搭建与网络原理实战
java·spring boot·微服务·容器·架构·个人开发