然饱饱 2024-02-18 18:59 采纳率: 50%
浏览 21

使用redisson时项目启动自动连接redis

工作中遇到一个问题,某个逻辑可能存在重复执行的bug,使用redisson分布式锁来解决这个问题,项目是springboot结构,但是没有启动类,需要使用maven的spring-boot:run命令来启动,一切都测试没有问题后,出现了一个bug,即当没有可用redis连接时,项目启动会失败,排查问题是使用redisson时,启动会自动连接redis,如何避免这种情况?因为目前的需求是redis是否可用不应该影响项目启动。
springboot版本2.1.3
redisson依赖:


<!-- https://mvnrepository.com/artifact/org.redisson/redisson-spring-boot-starter -->
<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-spring-boot-starter</artifactId>
    <version>3.11.0</version>
</dependency>

或者有没有其他的方式可以关闭这个自启动呢?抛出来的异常明显是没有被处理,异常大概内容就是netty连接redis连接不上(因为我给了一个肯定不能连接的地址端口用来测试),我也找不到这个异常的源头是谁抛出来的,是与自己写的代码无关的

  • 写回答

2条回答 默认 最新

  • GISer Liu 2024-02-18 19:04
    关注

    该回答引用自GPT-3.5,由博主GIS_Liu编写:

    问题的根本在于使用了Redisson Spring Boot Starter时,在项目启动时会自动连接Redis,而如果Redis不可用,项目就会启动失败。为了解决这个问题,你可以采取以下方案之一:

    1. 手动配置Redisson:不使用Redisson Spring Boot Starter提供的自动配置,而是手动配置Redisson客户端,这样可以更加灵活地控制连接的建立时机。你可以在项目中创建一个配置类,手动配置Redisson客户端,并且在这个配置类中处理连接异常的情况,以避免启动失败。

    2. 自定义条件装配:通过自定义条件装配的方式,控制Redisson自动配置的启用时机。你可以创建一个条件类,根据自定义的条件判断来控制Redisson的自动配置是否生效。例如,你可以判断Redis连接是否可用,只有当Redis连接可用时才启用Redisson的自动配置。

    3. 修改源码:如果Redisson Spring Boot Starter的自动配置不符合你的需求,你也可以考虑直接修改源码,去除自动连接Redis的逻辑,或者提出改进的建议给Redisson项目的开发者,以期待未来版本的改进。

    这些方案都可以帮助你解决项目启动时自动连接Redis导致启动失败的问题。根据你的具体需求和项目架构,选择其中一种方案进行实施即可。

    img

    如果该回答解决了您的问题,请采纳!如果没有,请详述问题所在!

    评论

报告相同问题?

问题事件

  • 创建了问题 2月18日

悬赏问题

  • ¥30 关于#微信#的问题:微信实名不绑卡 可以实现吗 有没有专家 可以解决
  • ¥15 (标签-考研|关键词-set)
  • ¥15 求修改代码,图书管理系统
  • ¥15 请问有没求偏多标签数据集yeast,reference,recreation,scene,health数据集。
  • ¥15 传感网应用开发单片机实训
  • ¥15 Delphi 关于sAlphaImageList使用问题
  • ¥15 寻找将CAJ格式文档转txt文本的方案
  • ¥15 shein测试开发会问些啥我是写java的
  • ¥15 关于#单片机#的问题:我有个课程项目设计,我想在STM32F103veTX单片机,M3主控模块上设计一个程序,在Keil uVision5(C语言)上代码该怎么编译?(嫌钱少我可以加钱,急急急)
  • ¥15 opnet仿真网络协议遇到问题