在调用shutdown()时等待当前的HazelcastInstance释放获取的锁

时间:2018-10-02 13:28:08

标签: java locking hazelcast

您好,其他开发人员,

我有一个可序列化的对象,该对象存储在两个Hazelcast成员中。

对象包含一些信息,这些信息只能在一个Hazelcast成员中同时更改。

为此,我正在使用ILock

一切正常,直到获得并持有对象锁定权的Hazelcast成员决定使用leave

我希望当前的Hazelcast成员在关机之前等待释放其获得的并持有的锁,以便它可以完成对象的编辑。

1 个答案:

答案 0 :(得分:0)

正如我们在评论中讨论的那样(使用@mdogan),没有内置的机制。

要实现我想要的目标,我必须:

  1. 当前Hazelcast成员将所有获取的锁定键存储在ConcurrentSkipListSet<String>中。
  2. 关闭之前,请遍历ConcurrentSkipListSet<String>,检查是否ILock.isLocked(),如果true,然后等待释放。
  3. 关闭当前的Hazelcast成员。