Size: a a a

Laravel Framework Russian Community

2020 August 18

AP

Alexander Pavlenko 🌚... in Laravel Framework Russian Community
смотри, разбирай)
источник

A

Alexandr in Laravel Framework Russian Community
Alexander Pavlenko 🌚
vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php
штош не настолько подробно)
источник

AP

Alexander Pavlenko 🌚... in Laravel Framework Russian Community
в случае с бд
$this->database->table($this->table)
                   ->lock($this->getLockForPopping())
источник

A

Alexandr in Laravel Framework Russian Community
Блэт
источник

A

Alexandr in Laravel Framework Russian Community
Я прост хотел принцип в целом разобрать а не копать ларавель
источник

A

Alexandr in Laravel Framework Russian Community
Но спасибо за наводку)
источник

А

Артём in Laravel Framework Russian Community
Alexandr
Я прост хотел принцип в целом разобрать а не копать ларавель
Т.е. из приведенного куска кода ты не понял принцип?
источник

A

Alexandr in Laravel Framework Russian Community
Артём
Т.е. из приведенного куска кода ты не понял принцип?
нет конечно. По названию функции можно только догадываться о механизме
источник

A

Alexandr in Laravel Framework Russian Community
->lock($this->getLockForPopping())
источник

А

Артём in Laravel Framework Russian Community
Alexandr
нет конечно. По названию функции можно только догадываться о механизме
Загуглить?
источник

A

Alexandr in Laravel Framework Russian Community
вот это
источник

A

Alexandr in Laravel Framework Russian Community
Артём
Загуглить?
да
источник

А

Артём in Laravel Framework Russian Community
Протыкать код?
источник

A

Alexandr in Laravel Framework Russian Community
Артём
Протыкать код?
нет
источник

A

Alexandr in Laravel Framework Russian Community
Alexandr
Я прост хотел принцип в целом разобрать а не копать ларавель
вот ж
источник

А

Артём in Laravel Framework Russian Community
И правда, не барское это дело
источник

ДФ

Дамир Фаткуллин... in Laravel Framework Russian Community
Всем привет.

У нас есть 1 запрос match/round который пишет результаты раунда в матче от двух игроков. Обычно эти запросы приходят одновременно от двух игроков.
Используется транзакции SERIALIZABLE в Постгрес, чтобы данные не перезаписывали друг друга (все пишется в одно поле JSON).

Когда пишет один, ячейка блокируется, и второй записать не может и получает ошибку. Вопрос такой, эту ошибку нужно отправлять на клиент, и чтобы он отправил запрос еще раз, или на сервере запускать цикл, и пока запрос не выполнится не отдавать ответ, например попробовать 2-3 раза и потом отдать ошибку, как лучше поступить? А то опыта в этом маловато.

Еще у меня была идея матчмейкинга на сокетах с использованием брокера очередей и микросервиса для поиска матча.
Типо человек отправляет команду на запись результата через сокет, и записывается в порядке очереди в БД. Ну это на будущее, а возможно это ОВЕРИНЖЕНИРИНГ.
источник

А

Артём in Laravel Framework Russian Community
Дамир Фаткуллин
Всем привет.

У нас есть 1 запрос match/round который пишет результаты раунда в матче от двух игроков. Обычно эти запросы приходят одновременно от двух игроков.
Используется транзакции SERIALIZABLE в Постгрес, чтобы данные не перезаписывали друг друга (все пишется в одно поле JSON).

Когда пишет один, ячейка блокируется, и второй записать не может и получает ошибку. Вопрос такой, эту ошибку нужно отправлять на клиент, и чтобы он отправил запрос еще раз, или на сервере запускать цикл, и пока запрос не выполнится не отдавать ответ, например попробовать 2-3 раза и потом отдать ошибку, как лучше поступить? А то опыта в этом маловато.

Еще у меня была идея матчмейкинга на сокетах с использованием брокера очередей и микросервиса для поиска матча.
Типо человек отправляет команду на запись результата через сокет, и записывается в порядке очереди в БД. Ну это на будущее, а возможно это ОВЕРИНЖЕНИРИНГ.
В слове «пробовать» нет буквы «ы», это раз.
источник

А

Артём in Laravel Framework Russian Community
Транзакции в фасаде DB могут повторяться нужное число раз, это два.
источник

ДФ

Дамир Фаткуллин... in Laravel Framework Russian Community
Извините, поправил.
источник