У меня есть кусок синхронизированного кода, который работает эффективно, но у меня возникают проблемы при запуске нескольких модулей на K8. Сценарий состоит в том, что обновление БД должно происходить только один раз за раз тем конкретным пользователем, который указан в собственном запросе и в программе.
Блок кода:
synchronized (this) {
int calcAmount = person.getSum() + sal.getMonthlySal();
calcAmount = calcAmount + refCount;
int status = customQuery.updateUnit(calcAmount);
}
Существует некоторые манипуляции с данными, которые являются программными c, и, в конце концов, то же самое необходимо обновить в базе данных. Объект person должен обрабатываться синхронно.
Я понимаю, что должно быть что-то, что получает блокировка вне JVM, чтобы его можно было контролировать. Я использую Load Balancer в шаблоне Round Robin, поэтому запросы будут обрабатываться для всех экземпляров JVM.
Может кто-нибудь подсказать, что и как сохранить операцию потока, чтобы она не прерывалась? Любой фрагмент кода или ссылка будут хороши для продолжения.