У меня есть веб-сайт MVC 3 C#, который вытягивает записи из веб-службы. Поскольку набор данных, который он получает от веб-службы, становится все больше и больше, я ищу способ, которым создание кеша не запускается первым пользователем для посещения сайта, пока нет текущего кеша, но по ежедневному графику (например, задание cron, запланированное задание или что-то еще).Запланировать задачу обновления HttpContext.Cache каждый день в определенное время
Как мне это сделать? Нужна ли мне какая-то пусковая библиотека, например, Quartz.net? (Я бы предпочел использовать более простое решение)
Что я имею в моем контроллере теперь:
private List<DataSummary> GetSummaries()
{
//get summaries from cache if available
List<DataSummary> summaries = (List<DataSummary>)HttpContext.Cache["SummariesCache"];
if (summaries == null)
{
//cache empty, retrieve values
summaries = _webservice.GetSummaries();
//cache it
HttpContext.Cache.Add("SummariesCache", summaries, null, DateTime.Now.AddHours(12), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
}
return summaries;
}
Редактировать
с использованием CacheItemRemovedCallback
вызывает тайм-аут ошибки
blimey, я не знал, что у других был этот вопрос также, спасибо за upvotes –