Springboot项目引入xxl-job

要将xxl-job集成到spring boot项目中,可以按照以下步骤进行操作:

首先,从Gitee拉取xxl-job的源码,并将其配置为Docker镜像部署到服务器上。

# 执行Maven打包mvn clean install

构建Docker镜像,镜像名称中不允许使用下划线

docker build -t xxl-job:latest .

接下来,在自己的Spring Boot项目中创建一个新的任务执行器,首先需要在项目的pom.xml文件中引入xxl-job的Maven依赖。

com.xuxuelixxl-job-core${project.parent.version}

然后,在项目的配置文件(如application.ymlapplication.properties)中添加xxl-job的配置信息。

xxl:job:admin:addresses: https://www.php.cn/link/7ece221bf3f5dbddbe3c2770ac19b419accessToken: executor:appname: xxl-job-executor-sampleaddress: ip: port: 8082logpath: /data/applogs/xxl-job/jobhandlerlogretentiondays: 30

在项目的resources目录下添加logback.xml文件,用于配置日志输出。

logback%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n${log.path}${log.path}.%d{yyyy-MM-dd}.zip%date %level [%thread] %logger{36} [%file : %line] %msg%n

创建一个名为XxlJobConfig的配置类,用于初始化xxl-job执行器。

package com.cgd.xxljobexecutor.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;

/**

  • xxl-job config

  • @author xuxueli 2017-04-28*/@Configurationpublic 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;

    @Beanpublic 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、引入依赖:
    • org.springframework.cloud
    • spring-cloud-commons
    • ${version}
    • 2、配置文件,或者容器启动变量
    • spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
    • 3、获取IP
    • String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();*/}

最后,编写一个简单的定时任务示例。

package com.cgd.xxljobexecutor.xxlJob;

import com.xxl.job.core.biz.model.ReturnT;import com.xxl.job.core.handler.annotation.XxlJob;import org.springframework.stereotype.Component;

/**

  • @author chengd
  • @version 1.0
  • @date 2021/5/19 15:24*/@Componentpublic class PushJob {@XxlJob("PushJobHandler")public ReturnT PushJobHandler(String param){ReturnT returnT = new ReturnT();returnT.setCode(ReturnT.SUCCESS_CODE);returnT.setContent("test");returnT.setMsg("

    test

    ");return returnT;}}

完成上述步骤后,启动Spring Boot应用,并登录到xxl-job管理后台(ip:8082/xxl-job-admin)查看是否已自动注入执行器的IP。

Springboot项目引入xxl-job

然后,创建并执行上述代码中的任务,查看执行日志。

Springboot项目引入xxl-job

执行任务后查看日志:

Springboot项目引入xxl-job

代码存放在Gitee仓库中,使用了Nacos和xxl-job。如果需要执行新的定时任务,请创建新分支,完成后提交pull request。

以上就是Springboot项目引入xxl-job的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/26751.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Java JSON字符串有效性验证:基于栈的实现与常见陷阱
上一篇 2025年11月2日 20:03:00
下一篇 2025年11月2日 20:05:02

相关推荐

  • CodeIgniter 4 API:捕获并返回错误到HTTP响应

    本文旨在帮助开发者在使用CodeIgniter 4 构建API时,能够有效地捕获后端发生的错误,并将这些错误信息以HTTP响应的形式返回给客户端,从而避免每次都检查日志文件的繁琐过程,提升开发效率。 在CodeIgniter 4中,默认情况下,错误会被记录到日志文件中,但不会直接显示在HTTP响应中…

    2026年9月13日
    000
  • 如何在Laravel中配置多语言支持

    在laravel中配置多语言支持的核心步骤包括定义语言包、设置应用语言环境以及使用翻译函数。1. 创建语言文件:在resources/lang目录下为每种语言创建子目录(如en和zh-cn),并在其中定义php数组存储翻译字符串;2. 设置语言环境:通过config/app.php中的’…

    2026年9月13日
    100
  • 如何为VSCode配置一个自定义的文件编码检测策略?

    VSCode无直接自定义编码检测API,需通过files.encoding设默认编码,files.autoGuessEncoding启自动识别,files.associations按文件类型指定编码,.editorconfig统一项目规范,辅以扩展处理特殊需求,组合实现自定义策略;编码误判主因包括B…

    2026年9月13日
    000
  • 如何在Laravel中使用Blade模板

    blade模板引擎是laravel框架的核心组件,用于创建动态视图。它允许在html中嵌入php代码,同时保持代码简洁易读。其使用步骤包括:1. 在resources/views目录下创建以.blade.php为扩展名的模板文件;2. 使用blade指令如@if、@foreach控制逻辑与渲染;3.…

    2026年9月13日
    000
  • VSCode版本管理:解决代码冲突与合并分支的实用方法

    掌握VSCode中Git冲突解决与分支合并方法,能提升协作效率。当多开发者修改同一代码区域时会触发冲突,VSCode用标记(如<<<<<<>>>>>>分支名)标出冲突块,并提供“接受当前”“接受传入”等按钮图形化处理。解决后需暂…

    2026年9月13日
    100
  • VSCode怎么把代码整齐_VSCode代码格式化与自动排版功能设置教程

    VSCode代码格式化可显著提升代码可读性与质量,通过内置功能及Prettier、ESLint插件实现。安装Prettier和ESLint插件后,需在设置中配置默认格式化工具、保存时自动格式化(Format On Save)、粘贴时格式化(Format On Paste)及保存时修复ESLint问题…

    2026年9月13日
    100
  • Linux ext4文件系统优缺点分析

    ext4因稳定性强、兼容性好,仍是许多Linux发行版的默认文件系统。它支持从ext3无缝升级,内核集成度高,适用于服务器和嵌入式设备;采用extents和延迟分配技术,提升大文件读写性能与I/O效率;但缺乏快照、压缩和去重等现代功能,扩展性有限;数据安全性依赖“data=journal”模式增强,…

    2026年9月13日
    000
  • 如何使用VSCode的源代码管理视图?

    VSCode的SCM视图可高效管理Git工作流。1. 点击左侧源代码管理图标或使用快捷键Ctrl+Shift+G打开视图;2. 查看未暂存和已暂存更改,通过点击“+”号暂存文件;3. 输入提交信息后按Ctrl+Enter提交,点击同步按钮推送至远程仓库;4. 通过状态栏分支名称切换或创建分支,冲突时…

    2026年9月13日
    000
  • 如何在Laravel中管理环境变量

    在laravel中管理环境变量的核心在于利用.env文件和config配置系统。具体来说,1. 使用.env文件存储环境变量,如数据库连接信息、api密钥等;2. 通过laravel的配置文件(如config/database.php)读取.env中的值,并使用config()函数获取配置;3. 在…

    2026年9月13日
    000
  • Redmi Note 11T 5G网络掉线解决 Redmi Note 11T 5G信号增强技巧

    Redmi Note 11T Pro的5G问题多由设置、环境或运营商导致;2. 需检查5G模式设为SA+NSA、关闭省电模式、开启VoNR;3. 优化使用环境,避免遮挡信号,远离弱覆盖区;4. 重启手机或重置网络设置;5. 确认套餐支持5G、更换新SIM卡并更新运营商配置文件。 Redmi Note…

    2026年9月13日
    000
  • 在Java中如何捕获Socket关闭时的异常

    正确处理Java Socket关闭异常需捕获IOException、SocketException等,在finally块或try-with-resources中安全关闭资源,避免多线程竞争,并检查isClosed状态防止重复关闭。 当使用Java进行网络编程时,Socket在关闭过程中可能会引发异常…

    2026年9月13日
    000
  • 如何在Laravel中实现数据导出

    在laravel中实现数据导出,核心思路是根据具体需求选择合适方法。1. 使用maatwebsite/laravel-excel处理excel或csv导出;2. 通过队列优化大量数据导出性能;3. 结合分块读取降低内存占用;4. 利用lazy collections控制内存使用;5. 支持多种格式如…

    2026年9月13日
    100
  • mysql如何解决连接本地数据库失败的问题

    连接本地MySQL数据库失败通常由服务未启动、连接参数错误、用户权限不足或防火墙阻止引起。首先确认MySQL服务是否运行,Windows可通过“服务”管理器查看,Linux/macOS使用systemctl或brew命令;若服务未启动,尝试手动启动并检查日志。其次核对连接参数:主机应为localho…

    2026年9月13日
    000
  • 如何在Laravel中处理异常情况

    laravel处理异常的核心在于集中化管理和响应错误。1. 异常处理通过 app/exceptions/handler.php 文件实现,其中 report 方法用于记录异常,支持多种日志驱动并可自定义逻辑;2. render 方法将异常转换为http响应,根据环境变量显示不同错误页面,并支持自定义…

    2026年9月13日
    100
  • VSCode的扩展推荐是基于什么?

    答案是VSCode根据文件类型、项目配置、用户行为和社区流行度智能推荐扩展。打开.py文件时提示Python扩展,存在package.json则推荐JS工具,频繁格式化代码会推荐Prettier,安装ESLint后可能推荐Prettier,高评分和官方扩展优先展示。 VSCode的扩展推荐主要基于你…

    2026年9月13日
    100
  • 如何在Laravel中使用集合方法

    如何高效地使用laravel集合方法?laravel集合提供链式操作,允许以函数式风格处理数据,通过collect()将数组转为集合对象后即可调用如map()转换元素、filter()过滤数据、reduce()归约计算、each()遍历执行操作、pluck()提取特定字段、sortby()排序等方法…

    2026年9月13日
    100
  • mysql如何安装mysql命令行工具

    答案:根据操作系统选择安装方式,Windows通过MySQL Installer安装并配置环境变量,macOS用Homebrew执行brew install mysql,Linux(Ubuntu/Debian)使用sudo apt install mysql-client;安装后运行mysql &#…

    2026年9月13日
    100
  • 如何在Laravel中实现URL重写

    laravel的url重写通过路由系统实现,而非服务器配置。1. 路由定义将url映射到控制器或闭包,如route::get(‘/products’, ‘controller@index’);2. 参数可通过{id}形式传递,并支持正则约束,如-&gt…

    2026年9月13日
    100
  • 《导演,请多多指教》Steam特别好评 女角颜值高

    《导演,请多多指教》Steam特别好评 女角颜值高《导演,请多多指教》Steam特别好评 女角颜值高《导演,请多多指教》Steam特别好评 女角颜值高《导演,请多多指教》Steam特别好评 女角颜值高

    真人互动影游《导演,请多多指教》现已正式上线,游戏在steam平台收获“特别好评”,总体好评率高达93%。 Steam商店地址:[点击进入]() 作为Steam平台上全球首款导演题材模拟互动影视游戏,《导演,请多多指教》让玩家亲历电影制作的全过程——从演员试镜、角色塑造到深入挖掘演员内心世界,每一步…

    2026年9月13日 用户投稿
    100
  • 如何在Laravel中处理JSON响应

    1.在laravel中处理json响应最直接且推荐的方式是使用response()->json()方法或直接返回数组或集合,laravel会自动转换为json;2.构建复杂json数据结构时应使用api资源(api resources),通过创建资源类定义数据结构并从控制器返回,保持控制器轻量…

    2026年9月13日
    000

发表回复

登录后才能评论
关注微信