Шаблон или библиотека для кэширования данных от вызовов веб-служб и обновления в фоновом режиме - PullRequest
1 голос
/ 07 января 2020

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

Я начал с некоторых доказательств концепции и моего текущего решения - это сочетание постоянного кэша / хранилища (хранит сериализованный json в файлах на диске) и кэша времени выполнения. Когда приложение запускается, оно заполняет кэш времени выполнения из постоянного кеша, если постоянный кеш пуст, он будет go вперед и вызовет веб-сервисы. В следующий раз, когда приложение перезагружается, мы загружаемся из постоянного кэша, избегая обращения к внешним источникам.

После первого заполнения мы хотим, чтобы кэш обновлялся в фоновом режиме с помощью какого-то процесса обновления на компьютере. Учитывая данное расписание, мы также хотим, чтобы этот процесс обновления был достаточно интеллектуальным, чтобы обновлять кэш только в том случае, если запрос к веб-службе был успешным, в противном случае сохраните старую версию. Здесь есть и поворот: некоторые веб-сервисы могут возвращать полную коллекцию, в то время как другим требуется один вызов для каждой сущности - поэтому процесс обновления может отличаться в зависимости от конкретного веб-сервиса.

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

Так что я ищу любой шаблоны, которые могут быть полезны для нас, если есть какие-либо C# -библиотеки или статьи на эту тему? Я не хочу "изобретать велосипед". Если кто-нибудь решит подобные проблемы, я хотел бы узнать больше о том, как вы к ним подошли.

Большое вам спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...