一、后端配置
1、引入jar包
在pom.xml文件中引入需要使用的xxl-job版本jar包,代码如下:
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.0.1</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有没有执行成功看第一栏,代码有没有执行成功看第二栏,通过查看,可以看到具体的问题,进行调错。