Как мне кэшировать большой набор данных, который займет несколько минут, чтобы вернуться? - PullRequest
0 голосов
/ 13 мая 2011

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

У меня есть два вопроса:

  1. Где я могу его кешировать?Диск, база данных, память (Я склоняюсь к тому, чтобы поместить его на диск. Он слишком большой и недостаточно доступен для хранения в памяти. Размещение в БД, вероятно, правильно , но я не хочу писатьETL и где-то есть работа.)

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

Вот мой план ... пожалуйста, скажите мне, что я идиот, и предложите что-то более простое, что я пропускаю.

Это звучит довольно нелепо для меня, и должен быть лучший способ.

Я использую .Net и IIS6, и при необходимости могу вставить XML в SQL Server.

1 Ответ

0 голосов
/ 13 мая 2011

Вы можете создать новую базу данных и запланированное задание, чтобы периодически получать эти данные и сохранять их в базе данных.Затем вы можете обслуживать данные, которые действительно необходимы, непосредственно из вашей базы данных, а не из веб-службы.

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