Redisson:为什么反应式客户端没有 PermitExpirableSemaphore?

Redisson: Why reactive client doesn't have PermitExpirableSemaphore?

我正在使用 redisson 反应式 Java 客户端。在非反应性客户端中,可以获得一个可过期的信号量:-

RPermitExpirableSemaphore semaphore = redisson.getPermitExpirableSemaphore("mySemaphore");

但是如果我创建一个响应式客户端,我只能找到 redisson.getSemaphore("value") 函数。我需要 PermitExpirableSemaphore 因为:-

  1. 我需要一个可以被不同线程释放的锁(所以不能使用RLock)。
  2. 我需要一个租用超时来防止死锁,以防获取锁的线程被杀死或卡住。

有没有办法在 Redisson 分布式锁中实现这种行为?

Edit1:我可以在 Config 中将全局租用时间设置为:- Config().setLockWatchdogTimeout(leaseTimeMs),但我确实需要在不同的锁上使用不同的租用时间。

Edit2:在 Redisson github https://github.com/redisson/redisson/issues/1391

上问了一个问题

edit2 中所链接,在 Redisson 中无法做到这一点。 Redisson 的首席开发人员 Nikita 迅速介绍了要求的功能,该功能将于 2.11.6

发布