Вот ситуация, в которой мы находимся.
Мы распространяем наши сборки (чисто DLL) среди наших клиентов (у нас нет контроля над их средой).
Они звонят нам, передавая список идентификаторов предметов, и мы ищем в нашей огромной базе данных и возвращаем товары с самой высокой ценой. Поскольку у нас есть соглашение об уровне обслуживания (30 миллисекунд), мы кэшируем наши элементы в кеше памяти (используя Microsoft MemoryCache) Мы кэшируем около миллиона элементов.
Проблема здесь в том, что он кэшируется только на протяжении всего жизненного цикла нашего клиентского приложения. Когда процесс завершается, все кэшированные элементы тоже.
Есть ли способ увеличить срок службы кэша памяти, чтобы последующий процесс мог повторно использовать кэшированные элементы?
Я подумал о том, чтобы иметь оконную службу и позволить всем этим различным процессам взаимодействовать с одним на одном компьютере, но это создаст огромный беспорядок, когда дело дойдет до развертывания.
Мы используем AppFabric в качестве нашего распределенного кеша, но единственный способ достичь нашего соглашения об уровне обслуживания — это использовать кеш памяти.
Любая помощь будет принята с благодарностью. Спасибо