Мы используем RavenDB для нашего сайта.Сайт загружает все свои данные в память (не очень), чтобы иметь возможность обрабатывать огромные нагрузки.Мы загружаем данные в фоновый поток, который регулярно проверяет с помощью БД (RavenDB + sqlserver), присутствуют ли какие-либо новые данные и, если это так, загружает эти данные в память.
Мы пробовали много вещей, чтобы получитьвокруг раздражающего лимита запросов в 30 запросов в RavenDB за сеанс.Поскольку у Raven нет никакого механизма для «сброса» сеанса после того, как мы завершили одну итерацию цикла проверки / загрузки, и поскольку нет способа сообщить Structuremap, мы действительно хотим, чтобы новый сеанс дажехотя мы все еще в том же потоке, что и раньше, мы как бы застряли.
В конце я снова пересмотрел, так что наши репозитории теперь используют RavenSessionProxy, структура структуры которого загружается для нас, что может быть сброшено загрузкойЦикл / fetch (который вручную устанавливает новую сессию документов, когда мы ее сбрасываем).
Это действительно единственный путь?Нет ли в Рэйвене какого-либо механизма, чтобы сказать: «Привет, мистер Сессия, я с вами на данный момент закончил, выровняйтесь и будьте свежими и готовыми в следующий раз, когда я призову вас)» или чтобы сказать Structuremap «Привет, СМ! Следующийраз я прошу у вас IDocumentSession, принесите мне новую, я устал от этой старой "