RLock lock = redissionClient.getLock(key);
lock.trylock(waitTime,leaseTime,TimeUnit.SECOND);
自动续期的前提:自动续期功能要求持有锁的线程必须仍然在运行。如果持有锁的线程意外终止或因其他原因停止运行,那么自动续期将无法执行,锁会在租期到期后被释放。
Redisson内部机制:Redisson 内部有一个 LockWatchdogTimeout 参数,它控制着自动续期的时间间隔。默认情况下,这个值为 30 秒。如果你设置的 leaseTime 比 LockWatchdogTimeout 要长,那么 Redisson 会自动续期。
可配置性:如果明确设置了 leaseTime,那么在这个时间到期后锁会被释放,不会继续自动续期。如果希望自动续期,可以在调用 tryLock 时将 leaseTime 参数设置为 -1。
总结一下,如果设置了 leaseTime 为 3600 秒,那么锁会在 3600 秒后释放,除你将 leaseTime 设置为 -1,此时锁会自动续期直到显式释放锁。