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}
相关推荐
Escalating_xu3 分钟前
【C++ STL简介】从六大组件到容器、迭代器与算法协作
java·c++·算法
何以解忧,唯有..14 分钟前
Python os模块详解:文件与目录操作指南
java·服务器·python
Csxyzj25 分钟前
kubernetes集群部署方法
java·linux·kubernetes
SQL-First布道者31 分钟前
全面解构传统持久层框架,拥抱真正的 SQL-First
java·数据库·spring boot·sql·spring·mybatis·spring jdbc
小蒜学长1 小时前
vue旅游攻略网站(代码+数据库+LW)
java·数据库·vue.js·spring boot·后端·旅游
凤山老林1 小时前
轻量级规则引擎落地:Spring Boot 集成 LiteFlow 实现动态业务编排与热更新
java·spring boot·后端·规则引擎·liteflow
夏贰四1 小时前
管控数据加载调度如何规避任务冲突?数据加载运维监控体系该如何搭建?
java·大数据·运维
山甫aa2 小时前
JavaWeb后端开发学习手册
java·开发语言·数据库·学习·mysql·springboot·web
鱼鳞_2 小时前
热门八股-JVM
java·jvm
ly76892 小时前
XML 从入门到实践:语法、命名空间、XPath、XSD 与 Java 安全解析
xml·java·python