生产环境报错:
java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionClosedException: Command succesfully sent, but channel [id: 0x32092d6e, L:/xx:54534 ! R:xx/xx] has been closed!
java.lang.IllegalMonitorStateException: attempt to unlock lock, not locked by current thread by node id: 8820f3a0-4111-44d0-8642-efeba751eef1 thread-id: 566
解决办法
redission配置增加ping连接检测,解决连接中断问题。
clusterServersConfig.setPingConnectionInterval(60000);
unlock增加判断,确认lock状态并且是当前线程持有。
if (lock.isLocked() && lock.isHeldByCurrentThread()) {
lock.unlock();
}
参考: