【SpringBoot】62、SpringBoot中接入xxl-job实现分布式任务调度

【SpringBoot】62、SpringBoot中接入xxl-job实现分布式任务调度,第1张

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

1、下载 xxl-job

gitee 地址:

https://gitee.com/xuxueli0323/xxl-job

文档地址:

https://www.xuxueli.com/xxl-job/
2、启动 xxl-job

从 gitee 上下载 xxl-job,使用 IDEA 工具打开,目录如下:

代码中已经有了 SpringBoot 的整合实例,是学习 xxl-job 的最好方式

3、启动 xxl-job 管理平台
  • 1、导入数据库文件
    数据库脚本路径为:
/xxl-job/doc/db/tables_xxl_job.sql

该脚本会自动创建数据库,无需先行创建数据库

  • 2、修改项目中数据库连接信息

    结合自己本地的 mysql 连接为准

  • 3、启动 xxl-job-admin

启动 xxl-job-admin 项目,直接运行 XxlJobAdminApplication 启动类即可,访问:

http://localhost:8080/xxl-job-admin

账户:admin,密码:123456

登录成功

4、新建项目中引入 xxl-job
  • 1、引入 maven 依赖

    com.xuxueli
    xxl-job-core
    2.3.1-SNAPSHOT

  • 2、创建 job
import com.xxl.job.core.handler.annotation.XxlJob;
import groovy.util.logging.Slf4j;
import org.springframework.stereotype.Component;

@Slf4j
@Component
public class DemoXxlJob {

    @XxlJob("testJob")
    public void testJob() {
        System.out.println("demoXxlJob 执行了:" + System.currentTimeMillis());
    }
}
  • 3、注册进入 xxl-job-admin
# xxl-job-admin 的地址
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
### xxl-job, access token
xxl.job.accessToken=
### xxl-job executor appname
xxl.job.executor.appname=xxl-job-executor-sample
### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
xxl.job.executor.address=
### xxl-job executor server-info
xxl.job.executor.ip=
xxl.job.executor.port=9999
### xxl-job executor log-path
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### xxl-job executor log-retention-days
xxl.job.executor.logretentiondays=30
  • 4、注册 xxl-job-executor bean
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;

@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() {
        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
        xxlJobSpringExecutor.setAppname(appname);
        xxlJobSpringExecutor.setAddress(address);
        xxlJobSpringExecutor.setIp(ip);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
        return xxlJobSpringExecutor;
    }

}
  • 5、启动项目
    查看 xxl-job-admin 的执行器列表:

    已经注册进来了

  • 6、添加任务管理

    新增一个任务,启动它:

    启动成功,查看执行日志:

    执行成功,查看控制台打印:

    成功输出,证明我们的 xxl-job 整合成功

如您在阅读中发现不足,欢迎留言!!!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/786656.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存