废话不说,想了解xxl_job的百度一下,我这里只记录我的配置使用过程
一、准备工作:
1.下载源码
- GitHub: github.com/xuxueli/xxl…
- 码云: gitee.com/xuxueli0323…
2.解压,打开文件,将doc/db下的sql文件执行在数据库中
编辑
二、配置调度中心
1.将解压后的源码导入IDEA
2. 配置admin模块下的配置文件
编辑
我这里只修改了端口号和数据库(写出你自己的)
编辑
编辑
还是选择admin模块下启动类,启动
编辑
启动成功就可以通过http://localhost:8090/xxl-job-admin/访问
账号密码默认为:amdin 123456
三、配置执行器
这个相当于应用程序,比如项目的某个订单模块需要使用xxl_job
1.添加maven依赖
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.4.0</version>
</dependency>
2.添加xxl_job的配置文件
xxl:
job:
admin:
addresses: http://localhost:8090/xxl-job-admin
accessToken: default_token
executor:
app name: cz-job
port: 10000
addresses: 要和上面的路径相同
app name: 这个是执行器的名称,后面要注册到上面配置的调度中心
port: 执行器的端口号,调用中心通过这个端口号连接你的应用程序
3.写配置类
package com.cz.ywhk.xxljob;
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* 功能描述: xxl_job配置类
*
* @author: Joker.
* @date: 2025/1/16 18:00
* @version: 1.0
*/
@Configuration
@Slf4j
public class XxlJobConfig {
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.executor.app name}")
private String appName;
@Value("${xxl.job.executor.port}")
private int port;
@Value("${xxl.job.accessToken}")
private String accessToken;
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
log.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appName);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
return xxlJobSpringExecutor;
}
}
4.编写配置类
package com.cz.ywhk.xxljob;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* 功能描述:
*
* @author: Joker.
* @date: 2025/1/17 9:06
* @version: 1.0
*/
@Component
@Slf4j
public class XxlJobTest {
private int count = 0;
@XxlJob("demoJobHandler")
public void task01(){
log.info("task01被执行{}", ++count);
}
}
只需要在你要执行的方法上加一个@XxlJob("demoJobHandler")注解
这个方法就相当于是一个定时任务,value为这个任务的名字
四、在调度中心添加执行器和定时任务
新增执行器
编辑
编辑
根据前面应用程序配置文件中的内容,选择手动录入 保存
新增任务
编辑
编辑
保存
启动定时任务
编辑
应用程序执行结果:
编辑
成功!