Member 13246559 Ответов: 1

Параллельные запросы Wcf


Я должен разработать банковскую систему, которая позволит пользователям вносить или снимать деньги со счетов.
Я реализовал всю логику, теперь требование состоит в том,что счет не может иметь отрицательного баланса, я застрял здесь.

Несколько пользователей могут с помощью-рисовать с одного счета. Как я могу реализовать отрицательный баланс в случае нескольких одновременных пользователей (или запросов)?
например, пользователь A и B с-рисует одновременно, запрос пользователя A заканчивается первым, и счет получает отрицательный баланс,тогда как я могу дать ошибку пользователю B?

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

Я создал сервис WCF Restful с двумя способами пополнения и вывода средств. Я проверяю баланс счета, пока с-рисую.

Afzaal Ahmad Zeeshan

Тогда это та часть слоя данных, где вы убедитесь, что данные с отрицательными значениями никогда не будут сохранены. Что случилось?

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

Member 13246559

Не могли бы вы предоставить для этого пример кода?

1 Ответов

Рейтинг:
0

cjmakwana

Как указал Афзаал, вам нужно обернуть каждую вашу транзакцию внутри единицы работы и заблокировать ее, чтобы сделать ее действительно кислотной транзакцией. В конце каждой транзакции вам нужно следить за тем, достиг ли баланс ниже указанного значения (или отрицательного). Даже при наличии параллелизма последующие транзакции будут ждать завершения текущей.