Реализация шаблона объединения объектов C#



есть ли у кого-нибудь хороший ресурс для реализации стратегии пула общих объектов для ограниченного ресурса в духе пула соединений Sql? (т. е. будет реализовано полностью, что это потокобезопасно).



чтобы следить за запросом @Aaronaught для уточнения, использование пула будет использоваться для запросов балансировки нагрузки на внешнюю службу. Чтобы положить его в сценарий, который, вероятно, было бы легче сразу понять, в отличие от моего прямого situtation. У меня сессия объект, который функционирует аналогично ISession объект из NHibernate. Что каждый уникальный сеанс управляет его подключением к базе данных. В настоящее время у меня есть 1 долго работающий объект сеанса и я сталкиваюсь с проблемами, когда мой поставщик услуг ограничивает мое использование этого отдельного сеанса.



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



надеюсь, что фон предлагает некоторое значение, но непосредственно ответить на некоторые из ваших вопросов:



Q: являются ли объекты дорогими для создания?
A: никакие объекты не являются ограниченным пулом ресурсы



Q: будут ли они приобретены / выпущены очень часто?
A: да, еще раз можно подумать о NHibernate ISessions, где 1 обычно приобретается и освобождается на время каждого запроса страницы.



Q: будет ли достаточно простой первой подачи или вам нужно что-то более умное, т. е. что предотвратило бы голодание?
A: простой круговой тип распространение было бы достаточно, по голоданию я предполагаю, что вы имеете в виду, если нет доступных сеансов, которые абоненты блокируются в ожидании релизов. Это не совсем применимо, так как сеансы могут совместно использоваться разными абонентами. Моя цель-распределить использование по нескольким сеансам, а не по одному сеансу.



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



Q: как насчет таких вещей, как приоритеты, ленивый против нетерпеливой загрузки и т. д.?
A: нет никакой приоритизации, для простоты просто предположим, что я бы создал пул доступных объектов при создании самого пула.

510   0  

Comments

    Ничего не найдено.