SpringBoot集成XXL-JOB

news2024/11/27 22:39:43

一、调度中心

首先下载XXL-JOB

GitHub:https://github.com/xuxueli/xxl-job
GitEE:https://gitee.com/xuxueli0323/xxl-job 项目使用2.3.1版本:
https://github.com/xuxueli/xxl-job/releases/tag/2.3.1

使用IDEA打开项目

xxl-job-admin:调度中心 xxl-job-core:公共依赖
xxj-job-executor-samples:执行器Sample示例
xxl-job-executor-sample-springboot:SpringBoot版本,通过SpringBoot管理执行器
xxl-job-executor-sample-frameless:无框架版本

根据数据库脚本创建数据库,修改数据库连接信息和端口,启动xxl-job-admin,访问http://192.168.101.65:8088/xxl-job-admin/ 账号密码:admin/123456
在这里插入图片描述

二、执行器

下面配置执行器,执行器负责与调度中心通信,接收调度中心发起的任务调度请求

1.首先在media-service工程中添加依赖(父工程中完成了版本控制,这里的版本是2.3.1)

<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
</dependency>

2. 在nacos下的media-service-dev.yaml下配置xxl-job

       注意这里配置的appname是执行器的应用名,稍后会在调度中心配置执行器的时候使用
xxl:
  job:
    admin:
      addresses: http://192.168.101.65:8088/xxl-job-admin/
    executor:
      appname: media-process-service
      address:
      ip:
      port: 9999
      logpath: /data/applogs/xxl-job-jobhandler
      logretentiondays: 30
    accessToken: default_token

3.配置xxl-job的执行器

  将示例工程下的配置类拷贝到media-service工程的config路径下,该类中的属性就是获取配置文件中的配置得到的,同时提供了一个执行器的Bean
@Configuration
public class XxlJobConfig {
    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
    @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;
    @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(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();
    */
    
}
    

在这里插入图片描述

4. 进入调度中心,添加执行器

在这里插入图片描述

5. 重启媒资管理服务模块,可以看到执行器在调入中心注册成功

在这里插入图片描述

三、执行任务

在media-service下新建包com.xuecheng.media.service.jobhandler,在该包下定义我们的任务类(创建任务类,编写任务方法)

package com.xuecheng.media.jobhandler;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
 * @author layman
 * @version 1.0
 * @description TODO
 * @date 2023/6/1 16:57
 */
@Slf4j
@Component
public class SimpleJob {
    @XxlJob("testJob")
    public void testJob() {
        log.debug("开始执行.......");
    }
}

然后进入调度中心添加任务,进入任务管理,新增任务信息
在这里插入图片描述

其中JobHandler中填写@XxlJob注解中的名称
随后重新启动media服务,并在任务管理中启动任务
在这里插入图片描述
控制台可以看到执行器的方法执行
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/598039.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

目录 一、全局配置的六个模块简介 二、Nginx配置文件的详解 1&#xff09;全局配置模块 2&#xff09;I/O 事件配置 3&#xff09;HTTP 配置 4&#xff09;web服务监听设置 5&#xff09;其他设置 location常见配置指令&#xff1a;“root、alias、proxy_pass 对比&a…

【高危】Windows LDAP 服务远程代码执行漏洞

漏洞描述 LDAP (Lightweight Directory Access Protocol)是一个建立在TCP/IP协议栈上的目录访问协议&#xff0c;支持Active Directory服务的Windows服务器通常也支持LDAP协议。 Windows 10至11、Windows Server 2008至2022版本存在远程代码执行漏洞。当目标服务器开启LDAPS时…

PointNet、PointNet++代码解析

最远点采样FPS代码解析 注意&#xff1a;一般深度学习框架中都会使用批操作&#xff0c;来加速收敛。 因此采样函数的输入输出应当也要包含批。 def farthest_point_sample(xyz, npoint):"""Input:xyz: pointcloud data, [B, N, C]npoint: number of samplesR…

2023-6-1-Qt是什么

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

Python编程环境搭建:Mac OS安装Python环境

和 Linux 发行版类似&#xff0c;最新版的 Mac OS X 也会默认自带 Python 2.x。 我们可以在终端&#xff08;Terminal&#xff09;窗口中输入python命令来检测是否安装了 Python 开发环境&#xff0c;以及安装了哪个版本&#xff0c;如下所示&#xff1a; c.biancheng.net:~ m…

仙境传说ro服务端搭建服务器架设教程

仙境传说ro服务端搭建服务器架设教程 仙境传说&#xff1a;改编同名幻想漫画有代表科幻的中世纪的村庄、精灵居住的森林、烈日曝晒的沙漠、东洋科幻风格的村庄等。深受玩家的热爱&#xff0c;爱与勇气的冒险即将拉开帷幕这一次梦想由我们来守护仙境传说RO全屏大世界冒险RPG RO…

C++核心编程——初识STL——STL的基本概念和六大组件

文章目录&#x1f4ac; 一.前言二.STL基本概念和组成①容器②算法③迭代器④空间配置器⑤适配器⑥仿函数 三.STL工作机制 一.前言 长久以来&#xff0c;软件界一直希望建立一种可重复利用的东西&#xff0c;以及一种得以制造出“可重复运用的东西”的方法,让程序员的心血不止于…

Redis中的动态字符串(SDS)

动态字符串&#xff08;Simple Dynamic String&#xff0c;SDS&#xff09; Redis是用C语言编写的。Redis中的简单动态字符串的设计与实现&#xff0c;兼顾了操作高效、能保存任意数据、以及节省内存的需求。Redis并且还兼容C语言的原生字符串API&#xff0c;从而提高了代码的…

【MTGCD-Net】Detecting Building Changes with Off-Nadir Aerial Images

目录 1.背景 2.网络总体结构 2.1中间辅助任务预测 2.2多任务特征引导模块

【Android】Binder(二)内存划分和Binder实现一次拷贝

MMAP介绍 在 Android 中&#xff0c;Binder 通信机制中使用了 mmap&#xff08;Memory Map&#xff09;技术&#xff0c;用于实现进程间的共享内存。mmap 是一种内存映射文件的方式&#xff0c;可以将一个文件或者设备映射到进程地址空间的一段连续的地址区域中&#xff0c;这…

运维小白必学篇之基础篇第三集:文件管理相关命令实验

文件管理相关命令实验 实验者&#xff1a;胡 阳 上午练习题&#xff1a; 1、创建1.txt文件&#xff0c;文件大小为350m 2、使用echo为文件2.txt写入内容hello&#xff0c;world 3、查看文件2.txt文件的内容 4、为2.txt文件追加写入nihao 5、实时查看2.txt的变化&#xff0c;可…

低代码平台:高效构建供应商信息管理系统的利器

随着数字化时代的来临&#xff0c;企业对于应用系统的需求也越来越高&#xff0c;但同时传统的软件开发方式有很多弊端&#xff0c;比如需要大量的开发人员、开发周期长、维护成本高等&#xff0c;这就导致了低代码平台的兴起。低代码平台是一种适用于企业快速构建应用程序的工…

紫光同创开发板使用教程(一):debug用法

我们这里通过debug抓一个普通led工程的部分信号 下面是代码&#xff0c;输入差分200M 1.整体代码 timescale 1ns / 1ps module led_test( //Differential system clockssys_clk_p,//200Msys_clk_n, rst_n, //S1 led );input sys…

农业度“伏”黑科技——农业气象站

最近气象预警 非常高能 总是一波跟着一波 高温、雨水接连不断 高热、高湿的“桑拿天”频繁出现 酷暑难耐 不愧是一年一度的 六月天 在这样一个 气温高、湿度大、风速小的夏天 “农业”也度日如年 毕竟“上蒸下煮”的模式可真不是盖的 自从入伏后 日照强烈程度UP ↑ …

【CORS策略: Multiple CORS header ‘Access-Control-Allow-Origin‘ not allowed导致的跨域问题】

引起跨域CORS报错的原因有很多种&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 这里我的报错属于最后一条。 探索的原因 正常axios请求接口&#xff0c;调试接口时出现以下问题 Access to XMLHttpRequest at http://192.168.31.111:9000/api/user/sessio…

Java常见的数据结构:栈、队列、数组、链表、二叉树、二叉查找树、平衡二叉树、红黑树

一、数据结构 1.数据结构概述 数据结构是计算机底层存储、组织数据的方式。是指数据相互之间是以什么方式排列在一起的。 通常情况下&#xff0c;精心选择的数据结构可以带来更高的运行或者存储效率 2.常见的数据结构 栈 队列 数组 链表 二叉树 二叉查找树 平衡二叉…

共建、共享开源 EDA 共性技术框架 | 2023 开放原子全球开源峰会开源 EDA 分论坛即将启幕

电子电路设计自动化&#xff08;EDA&#xff09;融合了计算机、微电子、计算数学、图形学和人工智能等众多前沿技术&#xff0c;为集成电路设计、制造和封装等整个产业提供至关重要的自动化辅助设计能力。集成电路是支撑国民经济、社会发展和保障国家安全的基础性、先导性和战略…

【日常】怀念儿童时的多啦A梦

怀念儿童时期的多啦A梦 儿童时期的乐趣HTML多啦A梦效果图&#xff1a;总结对自己孩子的期望 儿童时期的乐趣 时光飞逝&#xff0c;如白驹过隙版飞逝而过&#xff0c;一眨眼已经到了奔三的年纪。俗话说三十而立&#xff0c;是我拖了三十群里的后腿&#xff0c;在这里说一声抱歉…

网页下载的视频看不了怎么回事 网页下载的视频怎么找不到了

在网页直接看视频虽然可以解决视频占用设备内存的情况&#xff0c;但直接通过网页看视频&#xff0c;在视频中间会有广告&#xff0c;或因为网速不好造成观看不流畅等问题&#xff0c;网页视频下来可以解决以上问题。网页下载的视频看不了怎么回事&#xff1f;网页下载的视频看…

连锁店也要玩转外卖:外卖商城系统让你轻松实现!

外卖商城系统是一种基于互联网技术的商业模式&#xff0c;它通过将消费者与商家连接起来&#xff0c;为消费者提供外卖服务&#xff0c;为商家提供一个在线销售平台。外卖商城系统的出现&#xff0c;极大地方便了人们的生活&#xff0c;也为商家带来了更多的销售机会。 商城功…