XXL-JOB使用教程
一、下载部署
源码下载地址:https://github.com/xuxueli/xxl-job/releases
解压
二、创建数据库
SQL在db文件夹下,运行后会生成8张表
表名 | 作用 |
---|---|
xxl\_job\_user | 存储用户信息,如用户名、密码 |
xxl\_job\_register | 存储执行器的注册信息,如执行器IP、端口、心跳间隔等 |
xxl\_job\_logglue | 存储任务的Glue配置信息,如Glue类型、Glue源码等 |
xxl\_job\_log\_report | 存储调度信息,如调度时间、运行中-日志数等 |
xxl\_job\_log | 存储任务的执行日志 |
xxl\_job\_lock | 存储任务执行时的锁信息,避免任务并行执行 |
xxl\_job\_info | 存储任务的基本信息,名称、执行器信息等 |
xxl\_job\_group | 存储执行器分组信息 |
三、运行XXL-JOB
修改源码文件中的xxl-job-admin项目配置文件,数据库填写自己真实数据库
运行源码文件中的xxl-job-admin项目
浏览器输入:localhost:8080/xxl-job-admin/
用户名:admin
密码:123456
四、编写测试项目
1、新建SpringBoot项目
2、新增依赖
<!-- xxl-job-->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>3.1.0</version>
</dependency>
3、配置信息
spring:
application:
name: demo
server:
port: 8888
xxl:
job:
admin:
addresses: http://192.168.37.135:8080/xxl-job-admin
accessToken: default_token
timeout: 3
executor:
appname: demo
address:
ip:
port: 9999
logpath: /data/applogs/xxl-job/jobhandler
logretentiondays: 30
4、XxlJobConfig
package com.example.demo.config;
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.admin.accessToken}")
private String accessToken;
@Value("${xxl.job.admin.timeout}")
private int timeout;
@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.setTimeout(timeout);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
}
5、TestJobService
package com.example.demo.job;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Service;
@Service
public class TestJobService {
@XxlJob("sendMessage")
public void sendMessage() {
System.out.println("sendMessage");
}
}
6、运行Spring Boot项目
五、创建执行器
AppName填写测试项目中填写的信息
注册方式为:自动注册
注册后,稍等片刻,即可注册成功!