powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / jpa spring pessimistic locking timeout and rest servive
9 сообщений из 9, страница 1 из 1
jpa spring pessimistic locking timeout and rest servive
    #39362721
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть jpa метод - который обновляет значение в БД , обновление происходит через
пессимистический лог записи на уровне базы данных (mysql)

в методе идет вызов удаленного rest сервиса - который отвечает с sla 99.95%

и его ответ мы как раз и пишем в базу и отпускаем лок.

Но бывает ситуация что rest сервис долго не возвращает ответ и база считает что у нас дедлок и выбрасывает ошибку ...

Как это архитектурно разрулить ( нужен пример кода!)

Идея как в классических задачах типа залочили баланс с деньгами - запросили у удаленного сервиса подтверждение - получили - перевели деньги ...
...
Рейтинг: 0 / 0
jpa spring pessimistic locking timeout and rest servive
    #39362737
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нахрена тут "пессимистический лог"? Блокировка, которая зависит от какого-то удаленного сервиса это вообще за гранью.
А если ещё вспомнить как фривольно MySQL лочит таблицы, то такая система умрёт уже на нескольких пользователях. Ну, что собственно вы и имеете.

Просто унесите блокировку в бизнес-логику. Огородите запись от апдейтов любым другим способом: флагом, статусом, переносом в другую таблицу.

Обычно в таких случаях существует таблица транзакций. Транзакции могут быть подтвержденными и не подтвержденными. У вас разве нет пластиковых карт? С резервированием\заморозкой средств никогда не сталкивались?

А баланс это не запись в базе, которую нужно блокировать. Это вычисляемое знаение из всех транзакций, кешируемое для пущей производительности.
...
Рейтинг: 0 / 0
jpa spring pessimistic locking timeout and rest servive
    #39362744
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1,

Ну, и вообще вы форумом ошиблись.
Вам нужно базу сначала правильно спроектировать.
Например: http://stackoverflow.com/a/4376221

А работа с БД из Spring/JPA, это уже другой вопрос. К проектированию БД он не относится.
...
Рейтинг: 0 / 0
jpa spring pessimistic locking timeout and rest servive
    #39362784
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczНахрена тут "пессимистический лог"? Блокировка, которая зависит от какого-то удаленного сервиса это вообще за гранью.
А если ещё вспомнить как фривольно MySQL лочит таблицы, то такая система умрёт уже на нескольких пользователях. Ну, что собственно вы и имеете.

Просто унесите блокировку в бизнес-логику. Огородите запись от апдейтов любым другим способом: флагом, статусом, переносом в другую таблицу.

Обычно в таких случаях существует таблица транзакций. Транзакции могут быть подтвержденными и не подтвержденными. У вас разве нет пластиковых карт? С резервированием\заморозкой средств никогда не сталкивались?

А баланс это не запись в базе, которую нужно блокировать. Это вычисляемое знаение из всех транзакций, кешируемое для пущей производительности.

ДА ,спасибо . все верно расписали - одно но это не продакшен решение - это тестовая песочница .

и там ненужно до этого момента было городить кучу банковской бизнес логики со всеми этими таблицами
...
Рейтинг: 0 / 0
jpa spring pessimistic locking timeout and rest servive
    #39362826
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1ДА ,спасибо . все верно расписали - одно но это не продакшен решение - это тестовая песочница.
и там ненужно до этого момента было городить кучу банковской бизнес логики со всеми этими таблицами
Сначала спросили "Как это архитектурно разрулить". Теперь подводите к вопросу "каким костылём применить?"
На вопрос "Нахрена тут "пессимистический лог"?" тоже не ответили. Что он даёт? От каких апдейтов защищает? Защищайтесь от этих апдейтов другим способом.
...
Рейтинг: 0 / 0
jpa spring pessimistic locking timeout and rest servive
    #39362916
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1,
Действительно, лок по удаленке это за гранью. Как ты додумался?
...
Рейтинг: 0 / 0
jpa spring pessimistic locking timeout and rest servive
    #39362995
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Это не я ) нашел в коде . Но рефактрить нет желания Ибо это тесты и критичеость кода мала. Он работает но иногда падает.

Ввести версионность ввести оптимистмк лок И так далее.
...
Рейтинг: 0 / 0
jpa spring pessimistic locking timeout and rest servive
    #39362996
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Atum1,
Действительно, лок по удаленке это за гранью. Как ты додумался?

Очень удрбное решение : одна анотация над методом)
...
Рейтинг: 0 / 0
jpa spring pessimistic locking timeout and rest servive
    #39363002
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1,
это напоминает хождение по помойке и подбирании "авось заработает".
Удачи!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / jpa spring pessimistic locking timeout and rest servive
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]