У меня на работе есть веб-приложение, похожее на систему работы с билетами. Некоторые пользователи вводят новые вопросы. Другие работники выбирают и решают вопросы. Все данные хранятся в MS SQL Server 2005.
Пользователи, работающие над решением проблем, переходят на страницу, где они могут просматривать открытые проблемы. Поскольку до двадцати человек могут просматривать эту страницу одновременно, одной потенциальной проблемой, которую мне нужно было решить, было то, что произойдет, если кто-то выберет проблему, которую кто-то другой выбрал сразу после загрузки их страницы.
Чтобы решить эту проблему, я сделал две вещи. Во-первых, gridview, отображающий проблемы для выбора, использует таймер AJAX для обновления каждую секунду. Как только проблема выбрана, она исчезает максимум через одну секунду. Если они выбирают один в течение этой секунды, они получают сообщение с просьбой выбрать другой.
Проблема в том, что часть AJAX отправляет слишком много обновлений (это то, что я предполагаю), и это влияет на производительность страницы и базы данных. Кроме того, обновления не выполняются каждую секунду. Я считаю, что таймер ненадежен при запуске хранимых процедур.
Должен быть лучший способ, но я не могу его найти. Есть ли у кого-нибудь опыт работы с подобной ситуацией или есть предложения, чтобы несколько пользователей не выбирали одну и ту же запись для сохранения? Я действительно не хочу полностью отключать часть AJAX, потому что я чувствую, что само по себе сообщение затруднит использование приложения.
Спасибо,