Size: a a a

2020 February 28

I

Ilia in pro.jvm
Ivan Stepanov
В чём может быть проблема?
а рецепты из гугла не помогают?
источник

IS

Ivan Stepanov in pro.jvm
Ilia
а рецепты из гугла не помогают?
Неа
источник

IS

Ivan Stepanov in pro.jvm
-Djava.awt.headless=true не помогло
источник

А

Александр in pro.jvm
Денис Чиканов
Как ты гарантируешь уникальность ID на стороне клиента? А если клиент завис/перезагрузился/вылетел в момент генерации ID? А как сопоставить ID с запросом?
в рамках одного клиента - просто генерацией UUID, между разными клиентами никак, если клиент зависнет значит сообщение не отправит, отправит потом с тем-же или даже другим UUID, для бэкенда оно будет уникальное. Я так понял вопрос - не дублировать данные.
источник

ДЧ

Денис Чиканов in pro.jvm
Александр
в рамках одного клиента - просто генерацией UUID, между разными клиентами никак, если клиент зависнет значит сообщение не отправит, отправит потом с тем-же или даже другим UUID, для бэкенда оно будет уникальное. Я так понял вопрос - не дублировать данные.
Так ещё раз: клиент завис, переоткрылся, отправляет такое же сообщение с другим UUID. Вставлять запись - дублировать данные. Не вставлять запись - надо знать, что это дубликат, на стороне бэкэнда.
источник

А

Александр in pro.jvm
Денис Чиканов
Так ещё раз: клиент завис, переоткрылся, отправляет такое же сообщение с другим UUID. Вставлять запись - дублировать данные. Не вставлять запись - надо знать, что это дубликат, на стороне бэкэнда.
так а почему не реализовать само сообщение таким образом, чтобы UUID был его неотъемлемой частью? Нет UUID нет сообщения, есть сообщение - всегда есть UUID. Но я понял, про что ты. Нваерное в этом случае какие-то дополнительные проверки можно придумать.
Впрочем, ты можешь предложить свой вариант же. Я тут абсолютно не претендую :)
источник

IK

Igor Komarov in pro.jvm
Денис Чиканов
Так ещё раз: клиент завис, переоткрылся, отправляет такое же сообщение с другим UUID. Вставлять запись - дублировать данные. Не вставлять запись - надо знать, что это дубликат, на стороне бэкэнда.
Можно передавать с каждым следующим действием счетчик действий. Только после получения успешного ответа увеличивать счетчик на 1, в противном случае – оставлять тем же и воспроизводить действие. На сервере добавляем простую проверку, в рамках сесии, какой номер действия был последний, и если у нас payload прилетел с таким-же – возвращаем созданную сущность.

По-моему это один из стандартных механизмов при использовании wss, но можно и на обычный http REST перенести
источник

AE

Alexandr Emelyanov in pro.jvm
Максим Калашников
делать сохранение идемпотентным
+
источник

RU

Roman Ushakov in pro.jvm
напомнило тут про идемпотентность
https://habr.com/ru/company/yandex/blog/442762/
источник

A

Artjom Kalita in pro.jvm
Можно чексумму считать
источник

A

Artjom Kalita in pro.jvm
Которая собирается из нескольких параметров
источник

ДЧ

Денис Чиканов in pro.jvm
Александр
так а почему не реализовать само сообщение таким образом, чтобы UUID был его неотъемлемой частью? Нет UUID нет сообщения, есть сообщение - всегда есть UUID. Но я понял, про что ты. Нваерное в этом случае какие-то дополнительные проверки можно придумать.
Впрочем, ты можешь предложить свой вариант же. Я тут абсолютно не претендую :)
Я предлагаю не маяться хернёй на стороне клиента и реализовывать эту проверку на стороне серверной логики.
источник

А

Александр in pro.jvm
Денис Чиканов
Я предлагаю не маяться хернёй на стороне клиента и реализовывать эту проверку на стороне серверной логики.
ладно, а как?
источник

А

Александр in pro.jvm
Roman Ushakov
напомнило тут про идемпотентность
https://habr.com/ru/company/yandex/blog/442762/
отличная статья, как по мне
источник

RU

Roman Ushakov in pro.jvm
плюсую
источник

V

Vladimir in pro.jvm
Svetlana Nazina
привет. Я хочу написать мобилку + серверное приложение. Мобилка отправляет данные, я их сохраняю в бд. Проблема в том, что если связь с мобилкой прервется, то мобилка потом еще раз пошлет тот же запрос на сохранение, и я сохраню данные дважды. Как мне отменить сохранение, если во время запроса связь с мобилкой прервется? Использую spring data jpa
а почему на бэки нельзя проверить, если такие данные есть в бд то не сохранять их ?
for example
if User.exists(username): return
else createUser(user)
источник
2020 February 29

IG

Ilya Grudsky in pro.jvm
Vladimir
а почему на бэки нельзя проверить, если такие данные есть в бд то не сохранять их ?
for example
if User.exists(username): return
else createUser(user)
Такие проверки бесполезны, куда лучше всегда ловить exception вместо 2х запросов в DB на вставку.
источник

IS

Ivan Stepanov in pro.jvm
У меня приложение полностью фризится этой строчке:
BufferedImage image ...
Graphics2D imageGraphics = image.createGraphics();


Причём только на маках, в винде и линуксе всё нормально работает
источник

IS

Ivan Stepanov in pro.jvm
В чём может быть проблема?
источник

IS

Ivan Stepanov in pro.jvm
У меня приложение в связке JavaFX + jMonkeyEngine, и awt используется для того, что бы рисовать на текстуре
источник