в матче от двух игроков. Обычно эти запросы приходят одновременно от двух игроков.
Используется транзакции SERIALIZABLE в Постгрес, чтобы данные не перезаписывали друг друга (все пишется в одно поле JSON).
Когда пишет один, ячейка блокируется, и второй записать не может и получает ошибку. Вопрос такой, эту ошибку нужно отправлять на клиент, и чтобы он отправил запрос еще раз, или на сервере запускать цикл, и пока запрос не выполнится не отдавать ответ, как лучше поступить? А то опыта в этом маловато.
Еще у меня была идея матчмейкинга на сокетах с использованием брокера очередей и микросервиса для поиска матча.
Типо человек отправляет команду на запись результата через сокет, и записывается в порядке очереди в БД. Ну это на будущее, а возможно это ОВЕРИНЖЕНИРИНГ.
дэдлоки прям падают часто?
Обсуждают сегодня