Я работаю над веб-приложением, которое использует несколько внешних источников данных для данных, которые нам нужно отобразить на внешнем интерфейсе. Некоторые внешние вызовы являются дорогостоящими, а некоторые также требуют денежных затрат, поэтому нам нужен способ сохранить результат этих внешних запросов, чтобы пережить ie перезапуск приложения.
Я начал с некоторых доказательств концепции и моего текущего решения - это сочетание постоянного кэша / хранилища (хранит сериализованный json в файлах на диске) и кэша времени выполнения. Когда приложение запускается, оно заполняет кэш времени выполнения из постоянного кеша, если постоянный кеш пуст, он будет go вперед и вызовет веб-сервисы. В следующий раз, когда приложение перезагружается, мы загружаемся из постоянного кэша, избегая обращения к внешним источникам.
После первого заполнения мы хотим, чтобы кэш обновлялся в фоновом режиме с помощью какого-то процесса обновления на компьютере. Учитывая данное расписание, мы также хотим, чтобы этот процесс обновления был достаточно интеллектуальным, чтобы обновлять кэш только в том случае, если запрос к веб-службе был успешным, в противном случае сохраните старую версию. Здесь есть и поворот: некоторые веб-сервисы могут возвращать полную коллекцию, в то время как другим требуется один вызов для каждой сущности - поэтому процесс обновления может отличаться в зависимости от конкретного веб-сервиса.
Я думаю, что этот senario может ' не быть полностью уникальным, поэтому я осмотрелся и немного поработал над Google, но у меня нет средств для создания шаблонов или библиотек, имеющих дело с чем-то вроде этого.
Так что я ищу любой шаблоны, которые могут быть полезны для нас, если есть какие-либо C# -библиотеки или статьи на эту тему? Я не хочу "изобретать велосипед". Если кто-нибудь решит подобные проблемы, я хотел бы узнать больше о том, как вы к ним подошли.
Большое вам спасибо!