代码之家  ›  专栏  ›  技术社区  ›  JavaMachine

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

  •  0
  • JavaMachine  · 技术社区  · 7 年前

    大家好,各位开发者:

    我有可序列化的对象,它存储在两个Hazelcast成员之间。

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

    为此,我使用 ILock .

    一切都很好,直到,获得并持有物体锁的哈泽尔卡斯特成员决定 leave .

    我希望当前的Hazelcast成员在关闭前等待释放其获取和持有的锁,以便完成对象的编辑。

    1 回复  |  直到 7 年前
        1
  •  0
  •   JavaMachine    7 年前

    正如我们在评论中讨论的(与@mdogan一起),没有内置的机制。

    为了达到我想要的目标,我必须:

    1. 将当前Hazelcast成员获取的所有锁密钥存储在 ConcurrentSkipListSet<String> .
    2. 停机前,循环通过 Concurrentskiplistset<字符串> 检查是否 ILock.isLocked() 如果 true 然后等待释放。
    3. 关断电流危险熔铸构件。