本文来写篇xxl-job的使用实例
概述
在启动xxl-job服务端以后,打开控制面板
使用实例
准备工作
创建一个springboot项目来使用xxl-job定时任务
引入maven依赖,我用的是2.2.0版本
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.2.0</version>
</dependency>
编写配置文件
###############################
# Xxl-job配置
###############################
xxl:
job:
accessToken: default_token
admin:
addresses: http://192.168.1.112:8088/xxl-job-admin/
executor:
address:
appname: xxl-job-app
ip:
logpath: /data/applogs/xxl-job/jobhandler
logretentiondays: 30
port: 0
加一个配置类
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.Configuration;
@Configuration
public class XxlJobConfig {
private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.accessToken}")
private String accessToken;
@Value("${xxl.job.executor.appname}")
private String appname;
@Value("${xxl.job.executor.address}")
private String address;
@Value("${xxl.job.executor.ip}")
private String ip;
@Value("${xxl.job.executor.port}")
private int port;
@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.setAddress(address);
xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
}
控制面板
编写一个任务类里面是执行定时任务逻辑
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.Date;
@Slf4j
@Component
public class JobSample {
@XxlJob(value = "printTime")
public ReturnT<String> printTime(String param) {
log.info(">>>>>>>>>>>>>>>>>" + new Date().toLocaleString()+ "
param: " + param + ">>>>>>>>>>>>执行");
return ReturnT.SUCCESS;
}
}
启动任务注册到admin上
添加执行器和任务
进入管理页面,在执行器管理页面新增执行器
输入执行器信息,这里的AppName一定要和执行器项目中配置文件的相同,如果其多个执行器示例,也一定要保证每个示例的AppName是相同的
这里的onLine机器地址是无,过一会会自动注册成功。这是注册成功点击查看的页面
添加任务,在任务管理页面点击新增
这里是5秒执行一次,值得注意的是,这里的JobHandler要和执行方法@XxlJob注解中保持一致
点击保存后
点击启动,可以看到,每个5秒钟执行一次
本文小结
本文编写了一个简单实例来说明xxl-job的使用实际情况