一、後端配置
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有沒有執行成功看第一欄,代碼有沒有執行成功看第二欄,通過查看,可以看到具體的問題,進行調錯。