Size: a a a

2021 February 04

NG

Nikita Gryzlov in pro.jvm
Human Human
А как большниство делает в стандартеньких монолитах с регистрацией? Или с изменением имени?
Если нагрузка небольшая - то легче забить?

Если такое мб часто, то какой-нить оптимистик лок на таблицу и ретрай? Или очередь для последовательной обработки?
Помимо блокировок на таблицу целиком в рсубд есть ещё блокировки по полям/диапазонам. Достаточно повесить x-блокировку по почте, проверить её и осуществить запись.
источник

E

Evgeniy ♎️ in pro.jvm
Human Human
А как большниство делает в стандартеньких монолитах с регистрацией? Или с изменением имени?
Если нагрузка небольшая - то легче забить?

Если такое мб часто, то какой-нить оптимистик лок на таблицу и ретрай? Или очередь для последовательной обработки?
чёт я не понимаю как у вас проверка вызывает лок
делаете проверку селектом - нет имейла - и всё окей - персистаем пользователя в бд
делаете проверку селектом - нет имейла - и всё окей - персистаем пользователя в бд

даже если второму сначала сказали что такого нет мыла, и в этот момент произошла запись в бд - он отвалится потом на констрейнте в бд и точно также заворачиваем в кастомную ошибку и пишем - сорян такой уже занят

в результате у пользователя два состояния -
либо переходим в условно личный кабинет, потому что зарегались успешно
либо перегружаем страничку с ошибкой - извините данное мыло уже занято, вот такой пароль у него)
источник

HH

Human Human in pro.jvm
Evgeniy ♎️
чёт я не понимаю как у вас проверка вызывает лок
делаете проверку селектом - нет имейла - и всё окей - персистаем пользователя в бд
делаете проверку селектом - нет имейла - и всё окей - персистаем пользователя в бд

даже если второму сначала сказали что такого нет мыла, и в этот момент произошла запись в бд - он отвалится потом на констрейнте в бд и точно также заворачиваем в кастомную ошибку и пишем - сорян такой уже занят

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

HH

Human Human in pro.jvm
Evgeniy ♎️
чёт я не понимаю как у вас проверка вызывает лок
делаете проверку селектом - нет имейла - и всё окей - персистаем пользователя в бд
делаете проверку селектом - нет имейла - и всё окей - персистаем пользователя в бд

даже если второму сначала сказали что такого нет мыла, и в этот момент произошла запись в бд - он отвалится потом на констрейнте в бд и точно также заворачиваем в кастомную ошибку и пишем - сорян такой уже занят

в результате у пользователя два состояния -
либо переходим в условно личный кабинет, потому что зарегались успешно
либо перегружаем страничку с ошибкой - извините данное мыло уже занято, вот такой пароль у него)
“даже если второму сначала сказали что такого нет мыла, и в этот момент произошла запись в бд - он отвалится потом на констрейнте в бд и точно также заворачиваем в кастомную ошибку и пишем - сорян такой уже занят”
вот про это и был вопрос, как мне распознать эту ошибку в Spring Data, лезть и парсить SQL ошибки?
источник

E

Evgeniy ♎️ in pro.jvm
Human Human
Я не говорил, что проверка вызывает лок. Я говорил, что прийдется сделать лок, чтобы избежать ошибки аля race)
ну просто целиком всё в транзакцию заворачиваете
"делаете проверку селектом - нет имейла - и всё окей - персистаем пользователя в бд"
и да делаете лок
источник

HH

Human Human in pro.jvm
DataIntegrityViolationException - оч общая ошибка, если юзать абстракцию spring data
источник

E

Evgeniy ♎️ in pro.jvm
Human Human
DataIntegrityViolationException - оч общая ошибка, если юзать абстракцию spring data
эм...а что там нельзя кишочки выдрать никак?
источник

HH

Human Human in pro.jvm
Evgeniy ♎️
эм...а что там нельзя кишочки выдрать никак?
Ну чисто описание в ввиде String как я понял
источник

E

Evgeniy ♎️ in pro.jvm
ну не юзайте в этом месте spring data)
источник

HH

Human Human in pro.jvm
Evgeniy ♎️
ну не юзайте в этом месте spring data)
Я вот еще пытался найти подобное в самом JPA, тоже не нашел достататочно конкретной ошибки. Те прийдется видимо спускаться на уровень SQL и драйвера
источник

AE

Alexandr Emelyanov in pro.jvm
Alexey Genus
Ещё вот такое есть https://github.com/openzipkin/zipkin
Кстати да, хочу там пару фич, надо бы заняться)
источник

VG

Vik Gamov in pro.jvm
​​🚨 ☁️ Внимание! Бесплатный воркшоп от меня ☺️
В этот приведу друга и замутим Serverless Kotlin с Кафкой и Google Cloud.

📆  23 февраля 2021
⏰  12 по NY, 20 по MSK
источник

DC

Denis Chikanov in pro.jvm
Vik Gamov
​​🚨 ☁️ Внимание! Бесплатный воркшоп от меня ☺️
В этот приведу друга и замутим Serverless Kotlin с Кафкой и Google Cloud.

📆  23 февраля 2021
⏰  12 по NY, 20 по MSK
Господь, я увидел начало сообщения и пошёл тэгать админов на предмет спама, а тут ты. Стыдно. :D
источник

VG

Vik Gamov in pro.jvm
Denis Chikanov
Господь, я увидел начало сообщения и пошёл тэгать админов на предмет спама, а тут ты. Стыдно. :D
Бывает, зато вовремя одумался 😉 Сам такой
источник

IL

Igor L🐟 in pro.jvm
Vik Gamov
​​🚨 ☁️ Внимание! Бесплатный воркшоп от меня ☺️
В этот приведу друга и замутим Serverless Kotlin с Кафкой и Google Cloud.

📆  23 февраля 2021
⏰  12 по NY, 20 по MSK
а как зарегаться?
источник

VG

Vik Gamov in pro.jvm
Vik Gamov
​​🚨 ☁️ Внимание! Бесплатный воркшоп от меня ☺️
В этот приведу друга и замутим Serverless Kotlin с Кафкой и Google Cloud.

📆  23 февраля 2021
⏰  12 по NY, 20 по MSK
источник
2021 February 05

_🤔

_BadWolf_ 🤔 in pro.jvm
jline3 адекватное решения под консольное приложения?
источник

в

вαғғσмεттι in pro.jvm
Пацаны, боты сломались
источник

в

вαғғσмεттι in pro.jvm
Чините, реалистичность портится
источник

DC

Denis Chikanov in pro.jvm
@dmsol @igorz два подряд
источник