В таблице payments(idempotency_key UNIQUE). Повторный запрос с тем же ключом параллельно.
Anonymous Quiz
6%
Оба INSERT успешны
78%
Первый успешен, второй упадёт по уникальному индексу
8%
Оба упадут по deadlock
9%
Оба закоммитятся, т.к. разные транзакции
У вас endpoint POST /payments с заголовком Idempotency-Key. Как гарантировать, что повторные запросы с тем же ключом не создадут дубль?
Anonymous Quiz
6%
Хранить ключ в памяти PHP-процесса и проверять массивом
9%
Проверять наличие платежа по сумме и пользователю
24%
Делать SELECT + INSERT в одной транзакции без блокировок
60%
Делать атомарный SETNX (или INSERT ... ON CONFLICT DO NOTHING) и возвращать ранее созданный ресурс
Как PHP обрабатывает статическое свойство класса, если объект класса клонируется?
Anonymous Quiz
33%
Создается новая копия статического свойства
55%
Статическое свойство не копируется, остается одно для всех объектов
1%
Выдается предупреждение о невозможности клонирования
11%
Клонируется только ссылка на статическое свойство
👍1🥱1