Ручка распределенных замков для критической секции - PullRequest
0 голосов
/ 13 марта 2020

У меня есть требование, когда на разных DC запущены 2 экземпляра приложения. Он использует распределенные блокировки, поэтому в любой данный момент времени только 1 экземпляр будет иметь блокировку. Так, скажем, экземпляр A имеет блокировку, но при запуске некоторого критического раздела он теряет блокировку, но не знает об этом, поэтому экземпляр B получает блокировку. Так что теперь перед обновлением экземпляра БД А проверяет, есть ли у него блокировка или нет, она должна выйти. Я не уверен, что это лучший способ справиться с выходом. Я не могу просто вернуть, потому что поток кода будет продолжаться. Я думал о System.exit и затем, так как мы используем mesos, он снова запустит экземпляр, но хотел посмотреть, есть ли лучший способ справиться с ним.

...