Мы изучаем возможность перехода на распределенный кэш с помощью Windows AppFabric. Наше приложение ASP.NET 4.0 в настоящее время имеет реализацию кэша, использующую MemoryCache.
Одной из ключевых особенностей является то, что при добавлении элементов в кеш включается CacheItemPolicy, который содержит ChangeMonitor:
CacheItemPolicy policy = new CacheItemPolicy();
policy.Priority = CacheItemPriority.Default;
policy.ChangeMonitors.Add(new LastPublishDateChangeMonitor(key, item, GetLastPublishDateCallBack));
Монитор изменений внутренне использует таймер для периодического запуска делегата, переданного ему, что обычно является методом получения значения из БД для сравнения.
Затем политика и ее монитор изменений включаются при добавлении элемента в кеш:
Cache.Add(key, item, policy);
Ранний взгляд на класс AppFabric DataCache, по-видимому, указывает на то, что в то время как Timespan может быть включен при добавлении элементов в кеш, сам CacheItemPolicy не может быть включен.
Есть ли другой способ реализовать ту же функциональность типа ChangeMonitor в AppFabric. Уведомления наверное?
Ваше здоровье
Нил