SpringCloud - 任务调度 - xxl-job-java

1 搭建java执行环境

创建springboot项目,并添加maven

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

2 配置环境

2.1 配置参数

XML 复制代码
xxl:
  job:
    admin:
      addresses: http://ip:port/xxl-job-admin
    accessToken: default_token
    executor:
      appName: report-executor
      ip: 
      port: 9999
      address:
      logpath: D:/jobhandler
      logretentiondays: 30

2.2 JAVA连接服务

XML 复制代码
@Slf4j
@Configuration
public class ReportTaskConfig {
    @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() {
        log.info(">>>>>>>>>>> xxl-job config init.");
        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
        xxlJobSpringExecutor.setAppname(appname);
        xxlJobSpringExecutor.setIp(ip);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
        return xxlJobSpringExecutor;
    }
}

3 执行逻辑

3.1 创建任务句柄

复制代码
@Slf4j
public class DemoTaskHandler extends IJobHandler {
    @Override
    public void execute() throws Exception {
        String param = XxlJobHelper.getJobParam();
        log.info("执行信息,{}",param);
        XxlJobHelper.handleFail("执行异常");
    }
}

3.2 注册任务

复制代码
XxlJobSpringExecutor.registryJobHandler("demoJobHandler1",new DemoTaskHandler());

3.3 在管理页面执行创建任务

3.4 执行一次进行测试

在控制台输出:

复制代码
执行信息,{"test": 1}
相关推荐
滕州市燕猫虎计算机科技工作室个体工商户8 分钟前
Java面试题汇总
java·开发语言
代码调试师1 小时前
【毕设分享】基于SpringBoot的旅游向导分配管理系统57145
spring boot·毕业设计·源码·课程设计·毕设·大作业·程序定制
2301_32241428041 小时前
活力孕康复APP 47737- 原创(免费领源码+部署教程+开发环境)
java·vue.js·spring boot·mysql·微信小程序·idea·微信开发者工具
君顾11 小时前
外卖CPS软件开发实战:从系统架构到部署全流程指南
java·开发语言·外卖
vx_Biye_Design2 小时前
springboot游泳馆系统93765-计算机课程设计、毕业设计
java·javascript·spring boot·后端·python·spring·课程设计
名字还没想好☜2 小时前
Java NIO ByteBuffer 实战:flip/clear/compact 三个绕晕人的方法与 position/limit 心智模型
java·开发语言·后端·spring·nio
Wang's Blog2 小时前
Java框架快速入门: Spring Security+OAuth2之短信服务多供应商动态切换(阿里云与LeanCloud)
java·spring·阿里云
Doubbbbbbble云3 小时前
区间合并问题的常见算法模式与优化思路4
java·数据结构·算法
小溪学编程3 小时前
AQS 原理详解:从 CLH 队列到 ReentrantLock 的实现
java·开发语言
专业程序开发源3 小时前
springbootLivehouse票务系统-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·课程设计·pygame