Я хочу кэшировать некоторые данные в нашем интернет-магазине на 1 час, и я использую Asp.Net Core 2.1
IMemoryCache
. Можно ли обновлять кеш каждый час автоматически?
Обычно кэш обновляется после того, как веб-пользователь запрашивает кэшированные данные, срок действия которых истек. Но процесс кэширования занимает некоторое время, и я хочу быть уверен, что ни один пользователь не получит «медленный» сайт, потому что его запрос сбрасывает некоторые кэшированные данные.
Я не могу найти IMemoryCache
метод для этого. Я думаю, что это возможно с запланированной задачей, которая запускает некоторые функции обновления каждый час (+1 секунда?), Но затем, если повезет, запланированная задача немного позже, чем пользовательский запрос, и пользователь обновляет кэш вместо мое запланированное задание.
return _cache.GetOrCreate("FullNav", entry =>
{
entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(1);
//calculate fullnav
return fullnav;
});
Каков наилучший способ сделать это?