синхронизированное выполнение на разных машинах

2

У меня есть веб-приложение С# ASP.NET, работающее на двух машинах за балансировщиком нагрузки. Мы используем липкие сессии, поэтому у нас нет общего состояния сеанса процесса. В нашем коде используется база данных SQL, и мы обрабатываем кредитные карты.

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

Единственное решение, с которым мы столкнулись, - это переместить этот блок кода в веб-службу и вызвать эту веб-службу с компьютеров. Это представляет две проблемы.

1) Достаточно сложные данные должны управляться и возвращаться веб-службами 2) Веб-служба станет еще одной точкой отказа, которая не может быть излишней.

Любые инструменты или фреймворки, чтобы помочь синхронизировать код, запущенный на разных машинах?

Теги:
synchronization

2 ответа

1

Используйте блокировку приложения: sp_getapplock

Заблокируйте свой ресурс в соответствующем режиме (X) для соответствующей длины (от начала проверки состояния до конца ваших вставок).

0

Не было бы лишних попыток установить блокировки на строках базы данных?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню