Установить максимальный срок службы объекта в блоке кэша библиотеки Enterprise? - PullRequest
0 голосов
/ 05 октября 2009

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

Есть ли OOTB способ установить максимальную жизнь для определенных объектов?

1 Ответ

2 голосов
/ 05 октября 2009

Вы можете указать срок действия вашего элемента при добавлении его в кеш, используя метод Add CacheManager:

public void Add (
    string key,
    Object value,
    CacheItemPriority scavengingPriority,
    ICacheItemRefreshAction refreshAction,
    params ICacheItemExpiration[] expirations
)


В этом заведомо неправдоподобном примере, если цена продукта меньше 100, продукт кэшируется в течение 24 часов, в противном случае срок его действия истекает через 1 минуту после последнего времени доступа из кэша.

Product[] products = GetProducts();

CacheManager cache = CacheFactory.GetCacheManager();

AbsoluteTime twentyFourHoursLater = new AbsoluteTime(DateTime.Now.AddHours(24));
SlidingTime oneMinuteSlidingTime = new SlidingTime(TimeSpan.FromMinutes(1));

foreach (Product product in products)
{
    if (product.ProductPrice < 100)
    {
        cache.Add(product.ProductID, product, CacheItemPriority.Normal, null,
            twentyFourHoursLater);
    }
    else
    {
        cache.Add(product.ProductID, product, CacheItemPriority.Normal, null,
            oneMinuteSlidingTime);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...