У меня запущен веб-сайт MVC 3 С#, который извлекает записи из веб-службы. Поскольку набор данных, который он получает от веб-службы, становится все больше и больше, я ищу способ, которым создание кеша не запускается первым пользователем для посещения сайта, пока нет текущего кеша, но по ежедневному графику (например, задание cron, запланированное задание или что-то еще).
Как мне это сделать? Мне нужна какая-то библиотека запуска, например 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;
}
Edit
с использованием CacheItemRemovedCallback
вызывает ошибки времени ожидания