springBoot项目中配置xxl-job步骤详解

一、后端配置

1、引入jar包

在pom.xml文件中引入需要使用的xxl-job版本jar包,代码如下:

<dependency>
    <groupId>com.github.tobato</groupId>
    <artifactId>fastdfs-client</artifactId>
    <version>1.26.5</version>
</dependency>

2、修改项目的工程配置文件Application.yml

在配置文件中,添加关于xxl-job的配置信息:


#xxl-job
xxl:
  job:
    admin:
      addresses:地址
    executor:
      appname: oriPlan-Job
      ip:
      port: 9998
      logpath: /data/xxl-job/jobhandler
      logretentiondays: -1
    accessToken:

addresses:任务调度中心部署根地址(必填)

appname:这个名称可以自己定义,但一般为 “项目名称-job” ,此名称用于在任务调度中心中,配置执行器时的名称标识。

ip:执行器ip,可以不填,会自动识别注册

port:执行器端口号

logpath:执行器运行日志文件存储磁盘路径

logretentiondays:执行器日志保存天数,值大于3时生效,启用执行器log文件定期清理功能,否则不生效。

AccessToken:执行器通讯token,非空时启用

3、导入相关配置类文件

在这里插入图片描述

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.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan(basePackages = "com.tfjybj.training.provider.job")
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(initMethod = "start", destroyMethod = "destroy")
    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、编写需要执行xxl-job任务的功能代码

我这里写了项目 上相关的业务,监测用户项目是否延期,是则执行job进行延期提醒:
在这里插入图片描述

import com.tfjybj.training.provider.service.ProjectService;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler;
import com.xxl.job.core.log.XxlJobLogger;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;


@JobHandler(value = "SyncUserJob")
@Component
@Slf4j
public class SyncUserJob extends IJobHandler{

    @Resource
 private ProjectService projectService;

    /**
 * xxlJob监测,项目是否延期
 * @return 项目结构数据
 * @author 张慧颖
 * @since 2019年9月30日12:03:21
 */
 @Override
 public ReturnT<String> execute(String s){
        XxlJobLogger.log("SyncUserJob--start");
        projectService.selectEndTimeJob();
        XxlJobLogger.log("SyncUserJob--end");
        return ReturnT.SUCCESS;
    }

}

二、任务调度中心配置

1、新增执行器

在这里插入图片描述
在这里插入图片描述

2、新增任务

在这里插入图片描述
在这里插入图片描述

3、启动执行

添加文件任务后,可点击启动按钮启动xxl-job,第几执行按钮则like执行一次,可在日志中查看执行情况。
在这里插入图片描述

三、认证是否执行成功

点击日志,job有没有执行成功看第一栏,代码有没有执行成功看第二栏,通过查看,可以看到具体的问题,进行调错。
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章