1、入门和集成
<!-- xxl-job-core --><dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>2.5.0</version></dependency>
搭建控制台
XXL-JOB-ADMIN jar 本地启动,然后初始化调度平台的SQL tables_xxl_job.sql
登录地址如下 http://localhost:8080/xxl-job-admin/toLogin
用户名:admin 密码 123456
集成SpringBoot 配置如下:
@Beanpublic XxlJobSpringExecutor xxlJobExecutor() {logger.info(">>>>>>>>>>> xxl-job config init.");// 配置sprngboot 执行器XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();// 调度地址xxlJobSpringExecutor.setAdminAddresses(adminAddresses);// 执行器名称xxlJobSpringExecutor.setAppname(appname);// 执行器地址xxlJobSpringExecutor.setAddress(address);// 执行器IPxxlJobSpringExecutor.setIp(ip);// 执行器端口xxlJobSpringExecutor.setPort(port);// accessTokenxxlJobSpringExecutor.setAccessToken(accessToken);// 调度超时时间xxlJobSpringExecutor.setTimeout(timeout);// 日志文件存储路径xxlJobSpringExecutor.setLogPath(logPath);// 日志文件保留天数xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);return xxlJobSpringExecutor;}/*** 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;** 1、引入依赖:* <dependency>* <groupId>org.springframework.cloud</groupId>* <artifactId>spring-cloud-commons</artifactId>* <version>${version}</version>* </dependency>** 2、配置文件,或者容器启动变量* spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'** 3、获取IP* String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();*/
/*** 分片广播任务*/@XxlJob("shardingJobHandler")public void shardingJobHandler() throws Exception {// 分片参数int shardIndex = XxlJobHelper.getShardIndex();int shardTotal = XxlJobHelper.getShardTotal();XxlJobHelper.log("分片参数:当前分片序号 = {}, 总分片数 = {}", shardIndex, shardTotal);// 业务逻辑for (int i = 0; i < shardTotal; i++) {if (i == shardIndex) {XxlJobHelper.log("第 {} 片, 命中分片开始处理", i);} else {XxlJobHelper.log("第 {} 片, 忽略", i);}}}
启动Springboot 项目。
在调度平台配置任务如下:
执行日志结果如下:
分析一个日志知识点
从源码追踪分析如下:
如果不配置路径则默认是输出到 logger 中。
当我修改日志配置发现并不能生效。
追踪源码效果如下: