Мне было поручено создать набор веб-сервисов.Мы магазин Microsoft, поэтому я буду использовать WCF для этого проекта.Есть интересное дизайнерское соображение, для которого я пока не смог найти решение.Я попытаюсь объяснить это на примере:
Мой сервис WCF предоставляет метод с именем Foo ().
10 разных пользователей вызывают Foo () примерно в одно и то же время.
У меня есть 5 специальных ресурсов, которые называются R1, R2, R3, R4 и R5.Нам не нужно знать, что это за ресурс, кроме того факта, что конкретный ресурс может использоваться только одним вызывающим абонентом за раз.
Foo () отвечает за выполнение действия с использованием одногоиз этих специальных ресурсов.Таким образом, в циклическом порядке Foo () необходимо найти ресурс, который не используется.Если нет доступных ресурсов, он должен ждать освобождения одного.
Сначала это кажется легкой задачей.Я мог бы создать синглтон, который отслеживает, какие ресурсы используются в данный момент.Большая проблема заключается в том, что мне нужно, чтобы это решение было жизнеспособным в сценарии веб-фермы.
Я уверен, что есть хорошее решение этой проблемы, но я никогда раньше не сталкивался с этим сценарием,Мне нужен какой-то трекер / провайдер ресурсов, который может быть совместно использован несколькими хостами WCF.
Будем весьма благодарны за любые идеи архитекторов!