В таблице payments(idempotency_key UNIQUE). Повторный запрос с тем же ключом параллельно.
Anonymous Poll
3%
Оба INSERT успешны
87%
Первый успешен, второй упадёт по уникальному индексу
6%
Оба упадут по deadlock
4%
Оба закоммитятся, т.к. разные транзакции
У вас endpoint POST /payments с заголовком Idempotency-Key. Как гарантировать, что повторные запросы с тем же ключом не создадут дубль?
Anonymous Poll
12%
Хранить ключ в памяти PHP-процесса и проверять массивом
5%
Проверять наличие платежа по сумме и пользователю
20%
Делать SELECT + INSERT в одной транзакции без блокировок
64%
Делать атомарный SETNX (или INSERT ... ON CONFLICT DO NOTHING) и возвращать ранее созданный ресурс
Как PHP обрабатывает статическое свойство класса, если объект класса клонируется?
Anonymous Poll
23%
Создается новая копия статического свойства
54%
Статическое свойство не копируется, остается одно для всех объектов
4%
Выдается предупреждение о невозможности клонирования
21%
Клонируется только ссылка на статическое свойство
При конфликте версий Doctrine
Anonymous Poll
13%
Тихо перезатирает данные
72%
Бросает OptimisticLockException
15%
Ожидает, пока освободится строка
9%
Делает автоматический merge
DDD — границы агрегатов. За соблюдение кредитного лимита клиента при создании заказа кто отвечает?
Anonymous Poll
13%
Сервис корзины
20%
Агрегат Order
64%
Агрегат Customer (или доменный сервис вокруг него)
4%
Инфраструктурный валидатор в БД
Сколько попыток и задержки?
Anonymous Poll
20%
3 попытки: 10, 30, 90
73%
4 попытки: 0, 10, 30, 90
5%
4 попытки: 10, 30, 90, 180
2%
3 попытки: 0, 10, 30
Используется Doctrine transport. Какая семантика доставки сообщений?
Anonymous Poll
15%
Exactly-once
76%
At-least-once с возможностью ретраев и “failed”-queue
15%
At-most-once
12%
Гарантии зависят от версии PHP
Почему растёт RSS процесса-воркера?
Anonymous Poll
15%
Из-за JIT
46%
Из-за захвата $big в замыкании
32%
Из-за pcntl_fork() без exit
12%
Из-за GC, который всё очищает
Что реально ускоряет автозагрузку на проде?
Anonymous Poll
53%
composer dump-autoload -o (classmap оптимизация)
24%
composer install --no-dev без autoload-optim
1%
composer diagnose
26%
opcache.revalidate_freq=0 без preloading
Что выведет код в PHP 8?
Anonymous Poll
34%
Fatal error: Uncaught UnhandledMatchError: Unhandled match value of type null
65%
вариант 0
2%
Вывод условий 1,2,3
Какая функция используется для стирания всех переменных сессии, сохраненных в текущей сессии?
Anonymous Poll
62%
session_destroy()
1%
session_change()
13%
session_remove()
26%
session_unset()
Какой будет результат работы скрипта?
Anonymous Poll
3%
bool(false) bool(false)
80%
bool(true) bool(true)
3%
bool(false) bool(true)
14%
bool(true) bool(false)
Какой результат возвращает функция headers_sent()?
Anonymous Poll
29%
Массив отправленных заголовков
69%
TRUE, если заголовки отправлены
0%
FALSE, если заголовки отправлены
2%
Ошибка, если заголовки уже отправлены