springboot 整合xxl-job
1.下载地址
https://github.com/xuxueli/xxl-job
http://gitee.com/xuxueli0323/xxl-job
2.中央仓库地址,pom依赖
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.3.0</version>
</dependency>
3.使用git 工具将源码下载到本地
4.使用idea 工具打开xxl-job项目
更改xxl-job-admin下的的application.properties文件 改为自己的数据库账号密码,修改之后双击右边的package ,将项目打包。
注:**还要执行xxl给我们提供的数据库文件,在下载的源码的这个目录xxl-job\doc\db
5.打包
打开打包后的项目,并使用java -jar 打包后的包名 然后回车(这个命令是将打包后的项目执行)
执行成功之后,在浏览器输入http://127.0.0.1:8080/xxl-job-admin,用户名admin,密码123456
就可以进入xxl任务调度中心了
6.创建项目
接着就是创建我们自己的springboot项目
添加pom依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.3.0</version>
</dependency>
<!--日志 start-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.25</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
</dependencies>
7.新建XxlJobConfig ,这个是配置类,主要配置xxl的基础信息
@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;
}
8.创建MyJobHandle类 ,这个类就是用来自动执行任务的
@Slf4j
@Component
public class MyJobHandle {
@XxlJob("myJob1")
public ReturnT<String> myjob1(String params){
log.info("my job1 任务执行了。。。。。",params);
return ReturnT.SUCCESS;
}
@XxlJob("myJob2")
public ReturnT<String> myJob2(String params){
log.info("my job2 任务执行了。。。。。",params);
return ReturnT.SUCCESS;
}
}
9.添加application.yaml配置
logging:
config: classpath:logback.xml
xxl:
job:
accessToken: ''
admin:
addresses: http://127.0.0.1:8080/xxl-job-admin
executor:
address: ''
#执行器名字,需要和网页中新建的执行器名字一致
appname: execute-job
ip: ''
logpath: D:\资料集\git bash\xxl-log
logRetentionDays: 30
port: 9998
server:
port: 8989
10 新建logback.xml文件5,放在resources 目录下即可
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">
<contextName>logback</contextName>
<property name="log.path" value="D:\资料集\git bash\xxl-log\xxl-job-admin.log"/>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
<maxFileSize>1MB</maxFileSize>
<totalSizeCap>10MB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="console"/>
<appender-ref ref="file"/>
</root>
</configuration>
现在就可以去到http://127.0.0.1:8080/xxl-job-admin/jobgroup 这页面添加执行器了,这个执行器就是appname ,要和你的配置文件一致才可以使用
去到任务管理界面添加我们的任务了(添加任务后,点击任务右边的run,就运行了)
IDEA控制台:
就可以看见我们的任务已经执行了