Поделиться через


Практическое руководство. Настройка политики кэша на основе времени

При создании политики кэша на основе времени можно настроить поведение кэширования, указав значения для максимального возраста, минимальной свежести, максимальной устаревшей даты или даты синхронизации кэша. Объект HttpRequestCachePolicy предоставляет несколько конструкторов, которые позволяют указать допустимые сочетания этих значений.

Создание политики кэша на основе времени, использующего дату синхронизации кэша

Создайте политику кэша на основе времени, которая использует дату синхронизации кэша, передав DateTime объект конструктору HttpRequestCachePolicy :

public static HttpRequestCachePolicy CreateLastSyncPolicy(DateTime when)
{
    var policy = new HttpRequestCachePolicy(when);
    Console.WriteLine("When: {0}", when);
    Console.WriteLine(policy.ToString());
    return policy;
}
Public Shared Function CreateLastSyncPolicy([when] As DateTime) As HttpRequestCachePolicy
    Dim policy As New HttpRequestCachePolicy([when])
    Console.WriteLine("When: {0}", [when])
    Console.WriteLine(policy.ToString())
    Return policy
End Function

Выходные данные похожи на следующие:

When: 1/14/2004 8:07:30 AM
Level:Default CacheSyncDate:1/14/2004 8:07:30 AM

Создание политики кэширования с учётом времени и минимальной свежести

Создайте политику кэша на основе времени, основанную на минимальной свежести, указав MinFresh значение cacheAgeControl параметра и передав TimeSpan объект конструктору HttpRequestCachePolicy :

public static HttpRequestCachePolicy CreateMinFreshPolicy(TimeSpan span)
{
    var policy = new HttpRequestCachePolicy(HttpCacheAgeControl.MinFresh, span);
    Console.WriteLine(policy.ToString());
    return policy;
}
Public Shared Function CreateMinFreshPolicy(span As TimeSpan) As HttpRequestCachePolicy
    Dim policy As New HttpRequestCachePolicy(HttpCacheAgeControl.MinFresh, span)
    Console.WriteLine(policy.ToString())
    Return policy
End Function

Для следующего вызова:

CreateMinFreshPolicy(new TimeSpan(1,0,0));

Результат выглядит так:

Level:Default MinFresh:3600

Создание политики кэша на основе времени, основанной на минимальной свежести и максимальном возрасте

Создайте политику кэша на основе времени, основанную на минимальной свежести и максимальном возрасте, указав MaxAgeAndMinFresh в качестве cacheAgeControl значения параметра и передав два TimeSpan объекта HttpRequestCachePolicy конструктору, чтобы указать максимальный возраст ресурсов и секунду, чтобы указать минимальную свежесть, разрешенную для объекта, возвращаемого из кэша:

public static HttpRequestCachePolicy CreateFreshAndAgePolicy(TimeSpan freshMinimum, TimeSpan ageMaximum)
{
    var policy = new HttpRequestCachePolicy(HttpCacheAgeControl.MaxAgeAndMinFresh, ageMaximum, freshMinimum);
    Console.WriteLine(policy.ToString());
    return policy;
}
Public Shared Function CreateFreshAndAgePolicy(freshMinimum As TimeSpan, ageMaximum As TimeSpan) As HttpRequestCachePolicy
    Dim policy As New HttpRequestCachePolicy(HttpCacheAgeControl.MaxAgeAndMinFresh, ageMaximum, freshMinimum)
    Console.WriteLine(policy.ToString())
    Return policy
End Function

Для следующего вызова:

CreateFreshAndAgePolicy(new TimeSpan(5,0,0), new TimeSpan(10,0,0));

Результат выглядит так:

Level:Default MaxAge:36000 MinFresh:18000

См. также