首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种带有空闲TTL的锁/信号量?

是否有一种带有空闲TTL的锁/信号量?
EN

Stack Overflow用户
提问于 2019-11-27 15:19:46
回答 1查看 440关注 0票数 1

我有下面的案子。

为了防止并发资源访问,我们使用RPermitExpirableSemaphore作为锁。在Expirable中,我希望在一些TTL之后删除Redis中的“锁键”。但不幸的是,事实并非如此。

例如:

  • A试图获得锁X
  • A创建(以前不存在)锁X TTL 1m
  • A获得锁X
  • B尝试获取锁X
  • B等待A释放锁X
  • B获得锁X
  • 1分钟通过
  • Redis删除锁(键) X

如果有新的尝试来获得锁X,上面的场景将从零开始。

在Redisson是否有某种锁/信号量来提供这种行为?

我不能手动删除信号量,因为如果有其他客户端在等待锁被释放,那么它们最终会出现信号量不存在的异常(当然,因为它被另一个客户端删除了)。因此,我们有泄漏密钥(因为访问的资源是时态的,所以以后不会使用)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-07 13:01:39

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59073355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档