Prasad Nikumbh Ответов: 3

Как справиться с параллелизмом нескольких пользователей в системе бронирования


Существует приложение для бронирования билетов в кино n-уровневого приложения,которое содержит веб -, бизнес -, данные и уровень api we в asp.net mvc .предположим, что 1000 пользователей одновременно делают запрос на бронирование одного и того же места .как предотвратить бронирование другими пользователями.Стоит ли включать в приложение какой-то другой компонент.Пожалуйста, направьте мне лучшее решение и с точки зрения архитектуры.

Что я уже пробовал:

Проверено с обновленным столбцом даты в базе данных, так что может обрабатывать других пользователей от обновления в базу данных.но это не обрабатывает параллелизм.

3 Ответов

Рейтинг:
2

Gerry Schmitz

"Первый" пользователь ставит "бронирование" в "неизвестность". Остальных отшвыривают.

Если через 5 минут (например) бронирование будет "подтверждено" (оплата подтверждена), то бронирование будет "зарезервировано", иначе оно будет возвращено в пул (триггер(ы) на основе времени).


Prasad Nikumbh

Да, но как определить, кто является первым пользователем..если несколько запросов приходят одновременно..одновременно.

Рейтинг:
2

Member 14989556

когда вы ставите в неизвестность, вам нужно уменьшить общий запас, иначе нет никакого смысла делать это.


Рейтинг:
1

RickZeeland

Смотрите ответ здесь как обрабатывать параллелизм баз данных: c# - как лучше всего управлять параллелизмом в приложении доступа к базе данных? - переполнение стека[^]

И эта статья CodeProject: 6 способов выполнения блокировки в .NET (пессимистичный и оптимистичный)[^]

Вот обзор запирающих механизмов автора книги C# в двух словах: Потоковая передача в C# - Часть 2 - Базовая синхронизация[^]


Prasad Nikumbh

Мне не нужно проверять и нажимать на базу данных несколько раз..предположим, что есть 1000 пользователей одновременно..один первый пользователь должен быть забронирован..а другой должен блокировать.как определить это, если посылать запрос одновременно.