xxl-job调度中心
官网下载最新版本xxl-job调度中心源码:https://github.com/xuxueli/xxl-job/
一、从源码中拿到调度中心的初始化sql文件,然后在本地数据库执行sql文件,初始化调度中心数据库。
初始化完成后,数据库会生成下列这些调度中心所需要的表:
二、打开xxl-job-admin配置文件,修改连接数据库的配置,这里数据库配置为刚刚执行初始化sql的那个数据库。
三、启动调度中心
上述配置完成后,启动调度中心应用
启动成功后,可尝试访问xxl-job调度中心应用:http://localhost:8080/xxl-job-admin/toLogin
默认登录账户密码:admin / 123456
至此xxl-job调度中心配置启动结束。
xxl-job执行器应用
一、初始化一个springboot项目
二、导入xxl-job依赖(新版本)
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.4.2</version>
</dependency>
三、编写xxl-job配置application.yml
四、编写configeration配置:在Spring中注册执行器bean
package com.ws.config;
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.ComponentScan;
import org.springframework.context.annotation.Configuration;
/**
* @author sanworld
* @date 2025/01/07
*/
@Slf4j
@Configuration
public class XxlJobConfig {
@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.executor.logpath}")
private String logPath;
@Value("${xxl.job.executor.logretentiondays}")
private int logRetentionDays;
@Value("${xxl.job.accessToken}")
private String accessToken;
/**
* 新版本xxl-job (2.1.2以上) 中,需要删除@Bean参数:initMethod = "start", destroyMethod = "destroy",否则会报错
*/
@Bean
public XxlJobSpringExecutor xxlJobSpringExecutor() {
log.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor executor = new XxlJobSpringExecutor();
executor.setAdminAddresses(adminAddresses);
executor.setAppname(appName);
executor.setIp(ip);
executor.setPort(port);
executor.setLogPath(logPath);
executor.setLogRetentionDays(logRetentionDays);
executor.setAccessToken(accessToken);
return executor;
}
}
五、编写定时任务
/**
* 执行器任务:每个执行器一个方法
* <p>
* 注意:@JobHandler注解在新版本中已被@XxlJob替代,作用于方法上
*
* @author sanworld
* @date 2025/01/07
*/
@Component
public class TestJob {
@XxlJob(value = "testJob")
public void testJobOne() {
System.out.println("-----这是 testJob 测试任务-----");
System.out.println(">>>>>>>>>>>>> testJobOne 执行成功 >>>>>>>>>>>>>");
}
@XxlJob(value = "testJob2")
public void testJobTwo() {
System.out.println("-----这是 testJob2 测试任务-----");
System.out.println(">>>>>>>>>>>>> testJobTwo 执行成功 >>>>>>>>>>>>>");
}
}
注意: 新版本注解均使用@XxlJob,作用在定时任务方法上,且方法名称不限制;需要注意,定时任务方法的类需要加上@Component注解,将其注册为spring bean。
@XxlJob(value = "testJob")中的value值为稍后需要在调度中心配置的JobHandler参数值
六、配置调度中心-执行器
在 “调度中心-执行器管理” 中选择 “新增”
配置执行器:
七、配置调度中心-定时任务
选择任务管理器,然后点击新增
配置新增任务的参数:
如果有多个定时任务,那么这里就创建多个任务,JobHandler参数值需要和@XxlJob(value = "")注解中的value值一一对应。
新增任务完成后,会在任务管理器中看到新增的任务
八、启动springboot应用 (执行器)
启动自己的springboot应用,如果应用启动成功,会将刚才自己写的定时任务Job注册到xxl-job调度中心。
如果注册成功,“OnLine机器地址” 会出现你的执行器应用的IP地址和端口号
九、调度中心使用定时任务
如果都完成,则可以直接在 任务管理中执行定时任务,可以点击执行一次,会立即执行一次;点击启动,则会按照cron表达式定时执行。
定时任务的管理都在该页面进行,也可查看定时任务相关的日志,以及是否成功或者失败等等。
至此,已快速集成完成