任务调度xxljob的使用记录

ops/2024/12/22 18:31:51/

1.基本使用

a.下载代码,地址:https://gitee.com/xuxueli0323/xxl-job.git
在这里插入图片描述
b.执行sql,修改配置,启动任务调度中心的代码
在这里插入图片描述
在这里插入图片描述
启动代码后任务调度中心访问地址:http://localhost:8080/xxl-job-admin(自己机器的ip)
默认账号密码:admin/123456
在这里插入图片描述
c.编写执行器注册到任务调度中心(参考上述示例)
相关配置

# 指定要连接的任务调度中心地址
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin# 连接任务调度中心的token
xxl.job.accessToken=default_token# 指定当前应用的名称
xxl.job.executor.appname=zwb-test#  这个是ip和port的组合
#xxl.job.executor.address=### 指定到任务中心的ip
xxl.job.executor.ip=127.0.0.1# 指定通信的端口
xxl.job.executor.port=9999# 指定任务执行的日志
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler# 日志保存时间
xxl.job.executor.logretentiondays=30

编写一个配置类

java">package com.example.demo.xxljob.config;import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
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;// 将上述在配置文件中配置信息读取,注册一个XxlJobSpringExecutor对象
@Configuration
public class JobConfig {@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;@Beanpublic XxlJobSpringExecutor xxlJobExecutor() {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;}/*** 针对多网卡、容器内部署等情况,可借助 "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();*/}

注册一个定时任务

java">@Component
public class JobExample {@XxlJob("execute1")public void execute1() {System.out.println("用来测试xxl-job是否连通");}}

d.启动该代码后去任务调度中心配置相关数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
e.启动相关定时任务
在这里插入图片描述
在这里插入图片描述

2.基于集群的使用

a.搭建集群:基于上述的使用,赋值一份执行器代码,只需要更改xxl-job的通信端口即可完成集群的部署
在这里插入图片描述
在这里插入图片描述

b.集群配置
在这里插入图片描述
在这里插入图片描述

3.路由策略是分片广播的使用

当我们的定时任务的任务量较大时,我们可以将任务进行切分,采用多台机器同时执行来帮助我们加快定时任务的执行。xxl-job分片广播模式下会让所有的定时任务同时执行,但是会提供一个叫分片总数的参数来告诉每一个执行者目前该定时任务有多少实例,然后我们人为的可以将任务进行划分来执行。

java"> @XxlJob("execute1")public void execute1() {// 分片总数 :总数为该任务的实例数XxlJobHelper.getShardTotal();System.out.println("用来测试xxl-job是否连通");}

http://www.ppmy.cn/ops/23260.html

相关文章

【前端面试常问】什么是响应式❓Vue2/Vue3中响应式的原理

&#x1f525; 浅析Vue2/Vue3中响应式的原理 &#x1f44b; 大家好&#xff0c;今天我们来聊聊前端开发中经常提到的“响应式”概念&#xff0c;并剖析Vue2和Vue3是如何实现响应式原理的。对于前端开发者来说&#xff0c;理解响应式原理不仅能帮助我们更好地使用框架&#xff0…

Java基础知识总结(73)

1、今天学了什么 1、线程休眠 &#xff08;1&#xff09;sleep() 如果需要让当前正在执行的线程暂停一段时间&#xff0c;并进入阻塞状态&#xff08;Timed_Waiting)&#xff0c;则可以通过调用Thread类的静态sleep()方法来实现。 static void sleep(long millis)&#xff1a;让…

Trello与Notion的开源替代项目管理利器Focalboard本地安装与远程访问

本篇文章将介绍如何使用 Docker 本地部署 Focalboard 项目管理工具&#xff0c;并且结合 cpolar 内网穿透进行公网访问&#xff0c;实现团队协作&#xff0c;提高工作效率&#xff01; Focalboard 是一个开源项目管理工具&#xff0c;可以替代 Asana、Trello 和 Notion 等软件…

TP8 利用jwt 生成token

使用Composer安装依赖库&#xff0c;终端切换到项目根目录输入如下 composer require firebase/php-jwt 下面是示例代码&#xff1a; <?php namespace app\common\base;use Firebase\JWT\JWT; use Firebase\JWT\Key;class Token {/*** 创建 token* param array $data 必填…

CSS Position定位(详解网页中的定位属性)

目录 一、Position介绍 1.概念 2.特点 3.作用 4.应用 二、Position用法 1.position属性 2.static定位 3.fixed定位 4.relative定位 5.absolute定位 6.sticky定位 7.重叠的元素 三、CSS定位属性 四、总结 一、Position介绍 1.概念 文档流&#xff08;Document Fl…

Redis__数据类型

文章目录 &#x1f60a; 作者&#xff1a;Lion J &#x1f496; 主页&#xff1a; https://blog.csdn.net/weixin_69252724 &#x1f389; 主题&#xff1a;Redis__数据类型 ⏱️ 创作时间&#xff1a;2024年04月28日 ———————————————— 这里写目录标题 文…

甘特图是什么?利用甘特图来优化项目管理流程

在现代项目管理中,图表是一种强大而直观的工具,可以帮助项目经理和团队成员清晰地了解并掌控整个项目进程。其中,甘特图是最常用和最有效的图表之一。 甘特图是一种条形图,可以用来直观地展示项目中各个任务的进度、持续时间和相互关系。它由一个横轴和一个纵轴组成。横轴代表时…

HarmonyOS编程实践系列:第一节 - 创建健康App欢迎页

系列文章目录 &#xff08;零&#xff09;鸿蒙HarmonyOS入门&#xff1a;如何配置环境&#xff0c;输出“Hello World“ &#xff08;一&#xff09;鸿蒙HarmonyOS开发基础 &#xff08;二&#xff09;鸿蒙HarmonyOS主力开发语言ArkTS-基本语法 &#xff08;三&#xff09;鸿蒙…