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有沒有執行成功看第一欄,代碼有沒有執行成功看第二欄,通過查看,可以看到具體的問題,進行調錯。
在這裏插入圖片描述

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