У нас есть приложение WebAPI c # .NET 4.7.x, которому необходимо кэшировать пары (ключ, значение) в базе данных Oracle. Это не ядро .net, и кэширование ASP.NET не будет работать для нашего приложения.
- Объекты в кеше должны жить намного дольше, чем один вызов WebAPI.
- Объекты, которые должны храниться в кэше, требуют значительного времени для первоначального вычисления и остаются неизменными после вычисления в течение не менее 24 часов.
- Он должен жить внутри приложения WebAPI и Oracle. Он не может быть передан другому процессу сервера, Redis и т. Д.
Примеры в Интернете указывают на варианты, которые у нас не работают:
- Кэш на основе памяти: кэш должен сохраняться между вызовами WebAPI
- .NET Core: без использования .NET Core, не может потребоваться много человеко-месяцев для перехода на .NET core
- Кэширование на основе ASP.NET. Наше приложение является серверной частью веб-службы, и кэшированные данные перед тем, как пересылать их вызывающей стороне WebAPI, обрабатываются. Кэширование вывода http вызова WebAPI не будет работать в этом приложении
- Redis: мы не можем добавить другое новое серверное приложение в систему
- Сторонние решения от GitHub или из других источников: маловероятно, что одна из сторонних библиотек GitHub будет одобрена нашей группой по архитектуре ИТ из-за повышенного системного риска
Уже видели: