SpringBoot集成xxl-job

上一篇:docker搭建并配置xxl-job

声明:本xxl-job版本是2.3.0,如果你的依赖中存在@JobHandler注解而没有@XxlJob注解,那么请升级版本。

1.引入依赖。

<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>2.3.0</version>
 </dependency>

2.配置yml文件。

xxl:
  job:
    admin:
        #这里的端口是客户端用户访问的端口,我这里是9057
      addresses: http://ip:port/xxl-job-admin
    executor:
      appname: user-job
      ip:
      # 这个端口是任务程序和xxl-job-admin维护心跳交互的端口,不要和上面的addresses的端口一样。
      port: port
      logpath: /data/xxl-job/jobhandler
      logretentiondays: -1
    accessToken:

3.在项目中编写配置类。

package com.salong.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.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**
 * @author Salong
 * @date 2021/8/2 16:51
 * @Email:salong0503@aliyun.com
 * @Description:
 */



@Configuration
@ComponentScan(basePackages = "com.salong.job")
@ConditionalOnProperty(value = "jeecg.xxljob.enabled", havingValue = "true", matchIfMissing = true)
public class XxlJobConfig {
    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);

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

    @Value("${xxl.job.executor.appname}")
    private String appName;

    @Value("${xxl.job.executor.ip}")
    private String ip;

    @Value("${xxl.job.executor.port}")
    private int port;

    @Value("${xxl.job.accessToken}")
    private String accessToken;

    @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.setIp(ip);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);

        return xxlJobSpringExecutor;
    }

}

4.编写job类。

package com.salong.job;

import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * @author Salong
 * @date 2021/8/2 16:58
 * @Email:salong0503@aliyun.com
 * @Description:
 */

@Component
@Slf4j
public class UserJob{
    //这里的value要跟平台保持一致
    @XxlJob(value = "UserJobHandler")
    public void execute() {
        log.info("开始任务");
        Boolean b=testMethod();
        //如果调用方法中抛出异常,则xxl-job控制台显示失败,这种情况方法可以不用返回值
        //但是如果调用方法内只是log.err()这种则无法判定为失败,需要主动返回判定失败的信息
        //只有被@XxlJob注解的方法内抛出异常或者在方法体内使用
        //XxlJobHelper.handleFail指定失败,控制台才显示失败,否则默认是成功
        if(!b){
        XxlJobHelper.handleFail("执行错误!"+e.getMessage());
        }     
    }
}

5.在xxl-admin平台配置执行器管理,新增执行器

 6.在任务管理中新增定时任务。

 

7.新增之后运行一次,在日志中查看即可。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

却诚Salong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值