Григорий НикитинИнженер проверки сценариев и доступа

Запись на один слот: гонка двух заявок и повтор ответа

Три одновременно начатых запроса дают одну бронь, один конфликт и тот же ответ на повтор.

Задача

Слот 18:00 запрашивают Анна и Борис. Одновременно повторяется запрос Анны, а после сохранения имитируется потеря ответа. Без ключа запроса повтор выглядит новой записью.

Открыть работающий материал →

Три запроса на слот 18

Одновременные обращения к слоту 18 запускаются через Promise, а не последовательно на бумаге. Один запрос фиксирует запись, другой получает конфликт, повтор возвращается к прежнему результату. Эта проверка полезна именно конкуренцией: при последовательном запуске слабое место между чтением и записью могло бы остаться незаметным.

Что сделано

Я исполнил три конкурентных запроса к одному слоту и сохранил исходы записи, конфликта и повтора.

Реально выполненный асинхронный прогон трех запросов сохранил одну бронь. Борис получил конфликт, повтор A1 — первоначальное подтверждение. Последующий повтор после потери ответа не создал новую запись.

Открыть работающий материал · Контрольные примеры CSV · Повторить проверку · Модель и исходные условия