Дождитесь снятия полученных блокировок текущим HazelcastInstance при вызове shutdown () - PullRequest
0 голосов
/ 02 октября 2018

Здравствуйте, разработчики,

У меня есть сериализуемый объект, который хранится в двух членах Hazelcast.

Объект содержит некоторую информацию, которую можно изменить только в одном из участников Hazelcast одновременно.

Для этой цели я использую ILock .

Все работает нормально, пока член Hazelcast, который получил и удерживает блокировку для объекта, не решит оставить .

Я хочу, чтобы текущий член Hazelcast ждал освобождения своих полученных и удержанных блокировок перед выключением, чтобы он мог завершить редактирование объекта.

1 Ответ

0 голосов
/ 12 октября 2018

Как мы обсуждали в комментариях (с @mdogan), для этого нет встроенного механизма.

Чтобы достичь того, чего я хотел, мне нужно:

  1. Магазинвсе ключи блокировки получены текущим участником Hazelcast в ConcurrentSkipListSet<String>.
  2. Перед выключением выполните цикл ConcurrentSkipListSet<String>, проверьте, если ILock.isLocked(), если true, то дождитесь освобождения.
  3. Ток отключенияЧлен Hazelcast.
...