目录
1.git 拉取代码库到本地
2.回车,下载好后用Idea打开,从这个目录打开
编辑3.初始化数据库
4.修改配置文件中数据库的配置信息,换成自己的
5.启动项目,右键运行此文件
6.项目成功启动后,访问网址,进入管理页面
7.逃不掉的 Hello World
8.XxlJob配置类,固定的直接用
9.测试任务类
10.启动当前项目,出现这种提示说明链接成功
11.添加执行器
(1)调度中心选择,appname对应的是配置文件中的属性,选择自动注册,地址就不用手动填了
(2).点击保存后,刷新页面,显示添加成功
12.添加任务,这里选择spring bean 方式,jobHandler 就是方法注册的bean名称,其他信息正常填写编辑
13.执行测试,可以选择执行一次,则立即触发,或者选择启动,但是需要根据自己配制的cron表达式触发。控制台可以看到成功打印了信息
后续
2023.12.4-----更新一波带参数的定时任务操作方法
1.1在原有代码上的改动,多了一个job参数获取
1.2管理页面的改动,这两个位置在哪里改都可以,1这里的机器地址因为是勾选了自动注册的所以不用填写
1.3运行结果
2023.12.7---更新一波定时任务修改表字段
1.1注册任务,添加一个改动字段的job,简单的业务方法如下
1.2管理页面配置job执行器,调度类型这里因为只是手动执行一次,不选也无妨
1.3 运行结果,看到执行结果。再去检查下库
1.4 使用场景
官方文档:
早已听闻XxllJob定时任务的大名,今天自己到本地测试下
1.git 拉取代码库到本地
xxl-job: 一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。http://gitee.com/xuxueli0323/xxl-job
2.回车,下载好后用Idea打开,从这个目录打开
3.初始化数据库
执行数据库脚本,地址在包中这个位置
4.修改配置文件中数据库的配置信息,换成自己的
5.启动项目,右键运行此文件
6.项目成功启动后,访问网址,进入管理页面
调度中心访问地址:http://localhost:8080/xxl-job-admin
默认登录账号 “admin/123456”
7.逃不掉的 Hello World
核心配置:
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.3.1</version>
</dependency>
可以另外找个项目,进行测试,配置信息如下
- 新建springboot项目步骤
xxl.job.accessToken=default_token
xxl.job.admin.address=http://127.0.0.1:8080/xxl-job-admin
xxl.job.executor.address=
xxl.job.executor.appname=jpbhandel
xxl.job.executor.ip=#本机ip地址
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
xxl.job.executor.logretentiondays=30
xxl.job.executor.port=9998
配置分析
xxl.job.accessToken
:XXL-JOB 的访问令牌,用于鉴权验证,默认为 default_token。xxl.job.admin.address
:XXL-JOB Admin 的地址,即任务调度中心的访问地址,例如 http://172.19.6.66:8080/xxl-job-admin。(中间的ip为启动xxljob-admin项目的机器ip)xxl.job.executor.address
:执行器的地址,即当前执行器机器的 IP 地址+端口号,例如 192.168.166.6:9998。如果不填写则会自动获取当前执行器机器的 IP 地址和默认端口号。(也就是当前启动的个人项目机器ip)xxl.job.executor.appname
:执行器的应用名称,用于在任务调度中心进行区分,例如 jpbhandel。xxl.job.executor.ip
:执行器的 IP 地址,如果不填写则会自动获取当前执行器机器的 IP 地址。xxl.job.executor.logpath
:执行器的日志路径,指定执行器日志的存储路径,例如 /data/applogs/xxl-job/jobhandler。xxl.job.executor.logretentiondays
:执行器的日志保留天数,指定执行器日志的保留天数,超过指定天数的日志将被清理,默认为 30 天。xxl.job.executor.port
:执行器的端口号,指定执行器监听的端口号,默认为 9998。
8.XxlJob配置类,固定的直接用
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import com.xxl.job.core.util.IpUtil;
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.address}")
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(IpUtil.getIp());
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
}
9.测试任务类
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component
public class AssetsTask {
private static Logger logger = LoggerFactory.getLogger(AssetsTask.class);
@XxlJob("testJobHandler")
public void demoJobHandler() throws Exception{
XxlJobHelper.log("XXL_JOB,run successfully.");
System.out.println("XXL_JOB:Hello WOrld." + LocalDateTime.now());
}
}
10.启动当前项目,出现这种提示说明链接成功
11.添加执行器
(1)调度中心选择,appname对应的是配置文件中的属性,选择自动注册,地址就不用手动填了
(2).点击保存后,刷新页面,显示添加成功
12.添加任务,这里选择spring bean 方式,jobHandler 就是方法注册的bean名称,其他信息正常填写
13.执行测试,可以选择执行一次,则立即触发,或者选择启动,但是需要根据自己配制的cron表达式触发。控制台可以看到成功打印了信息
基础操作就这些了,后面可以看官方文档再玩玩
后续
2023.12.4-----更新一波带参数的定时任务操作方法
1.1在原有代码上的改动,多了一个job参数获取
1.2管理页面的改动,这两个位置在哪里改都可以,1这里的机器地址因为是勾选了自动注册的所以不用填写
1.3运行结果
可以看到成功接收到job参数并且打印
2023.12.7---更新一波定时任务修改表字段
1.1注册任务,添加一个改动字段的job,简单的业务方法如下
1.2管理页面配置job执行器,调度类型这里因为只是手动执行一次,不选也无妨
1.3 运行结果,看到执行结果。再去检查下库
1.4 使用场景
因为系统下面分为多个项目,每个项目有单独的数据库,所有项目信息维护在主库main中,现在需求有改动,所有项目下的某个表要新增或删除字段,就可以通过该种途径实现,将项目库的信息全部查出来保存到集合中,循环遍历切换到每个项目库,执行ddl操作,为什么不直接在本地跑一下sql语句?因为本地是可以这样做的,但到了生产环境没权限额,只能抛出一个接口,然后查看任务的日志即可。文章来源:https://www.toymoban.com/news/detail-858572.html
官方文档:
分布式任务调度平台XXL-JOB文章来源地址https://www.toymoban.com/news/detail-858572.html
到了这里,关于XXL定时任务:通过具体案例xxljob本地化布置与测试(持续更新不同案例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!