关于redisson jar包导致的问题

img


我在项目中加了一个redisson分布式锁,然后为相关程序上锁解锁 由于以前项目没有引用该jar包,且是老项目 jar包需要手动添加,然后我去maven网站下载了redisson相关jar包,发现如果直接使用该jar包会有一些类找不到,于是我用idea里的maven自己打包出相关的jar包 如下

img


然后丢到服务器上启动后可以正常启动,但是关闭服务后,会出现一个占用线程的错误 如图

img


导致重启服务的时候 需要手动kill进程才可以重启服务,请问怎么解决

这个错误提示是因为你的应用在启动Redisson的时候创建了一个线程,但是在关闭应用时,这个线程没有被正确停止,因此被认为是潜在的内存泄漏。

可以在关闭应用程序之前显式地关闭 Redisson 客户端,这样就可以保证所有 Redisson 客户端中的资源都被正确地关闭了。在你的代码中加入一个@PreDestroy注解的方法,这个方法将在程序关闭时自动调用,可以在这个方法中关闭 Redisson 客户端:

@Configuration
public class RedisConfig{
    
    // ...其他配置
    
    private RedissonClient redissonClient;
    
    @Bean
    public RedissonClient redissonClient() {
        Config config = new Config();
        config.useSingleServer().setAddress("redis://" + host + ":" + port);
        redissonClient = Redisson.create(config);
        return redissonClient;
    }

    @PreDestroy
    public void shutdownRedissonClient() {
        redissonClient.shutdown();
    }
}
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/746402
  • 这篇博客也不错, 你可以看下记一次redisson启动报错,但是加锁解锁正常
  • 除此之外, 这篇博客: IDEA MAVEN工程拉取本地jar包中的 因为当时建工程的时候,可能这个路径是默认的,如果你改变了自己的工程路径,这些路径可能和你仓库的实际路径不符,然后就会发生本地文件已经安装了,却怎么也加不到仓库里面。。。。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    本地maven的家目录可以在环境变量里面查看:此电脑->属性->高级系统设置->环境变量

    然后maven的仓库在maven home的repo路径下。

    检查IDEA中,maven仓库路径是否正确:

    IDEA中打开file->settings->build,execution,deployment->build tools->maven

    在这里面设置maven home,仓库和settings.xml的路径

    这些都保证没问题之后我们就可以去安装本地文件和拉取到工程里面了


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^