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秒执行一次。

相关推荐
HyggeBest2 分钟前
Golang 并发原语 Sync Cond
后端·架构·go
老张聊数据集成6 分钟前
数据建模怎么做?一文讲清数据建模全流程
后端
一只爱撸猫的程序猿8 分钟前
创建一个关于智能博物馆导览案例
spring boot·aigc·ai编程
S妖O风F12 分钟前
IDEA报JDK版本问题
java·ide·intellij-idea
Mr. Cao code15 分钟前
使用Tomcat Clustering和Redis Session Manager实现Session共享
java·linux·运维·redis·缓存·tomcat
纪莫17 分钟前
DDD领域驱动设计的理解
java·ddd领域驱动设计
颜如玉26 分钟前
Kernel bypass技术遥望
后端·性能优化·操作系统
一块plus41 分钟前
创造 Solidity、提出 Web3 的他回来了!Gavin Wood 这次将带领波卡走向何处?
javascript·后端·面试
山中月侣1 小时前
Java多线程编程——基础篇
java·开发语言·经验分享·笔记·学习方法
用户298698530141 小时前
C#代码:Word文档加密与解密(Spire.Doc)
后端