2013-04-12 3 views
1

Я запускаю кеш-роль в своем Azure WebRole. Когда я вставляю объект в кеш, я указываю промежуток времени 15 секунд, но после истечения срока действия объекта истекает 1 минуту и ​​половина.Azure Role Caching - Срок действия не работает

Вопрос: есть ли минимальное значение для истечения срока годности. Может ли это быть 15 секунд?

Update: Когда я говорю, что объект не истекает в указанное время, я имею в виду, что я не получаю ожидаемые «удалить обратный вызов» в настроенное время. У меня следующая конфигурация:

DataCacheFactoryConfiguration config = new DataCacheFactoryConfiguration(); 
      config.NotificationProperties = new DataCacheNotificationProperties(1000, TimeSpan.FromSeconds(1)); 


      cacheFactory = new DataCacheFactory(config); 
      cacheAbsolute = cacheFactory.GetCache("absolute"); 



      foreach (CacheAbsoluteRegion reg in Enum.GetValues(typeof(CacheAbsoluteRegion))) 
      { 
       cacheAbsolute.CreateRegion(reg.ToString()); 
       cacheAbsolute.AddRegionLevelCallback(reg.ToString(), DataCacheOperations.RemoveItem, new DataCacheNotificationCallback(RemoveCallback)); 
      } 

После того, как добавить объект с промежутком временем 15 секунд, обратный вызов вызываются между 1 и 2 минутой после вставки.

+1

Можете ли вы опубликовать строку Microsoft.WindowsAzure.Plugins.Caching.NamedCaches из ваших настроек? – gdc

+0

{" кэша ": [{" имя ": " по умолчанию ", " политики ": {" выселения ": {" типа ": 0}, " истечение ": {" DefaultTTL ": 1, " isExpirable ": правда, " тип ": 2}, " serverNotification ": {" IsEnabled ": истинно}}, " второстепенные ": 0}, {" имя: " абсолютное ", " политика ": {" выселении ": {" тип ": 0}, " истечения ": {" DefaultTTL ": 10, " isExpirable ": правда, " типа ": 1}, " serverNotification " : {" isEnabled ": true}}, " второстепенные ": 0}]} –

+0

Есть 2 названных кеша, один имеет скользящее окончание и другое абсолютное истечение. –

ответ

1

Убедитесь, что вы используете что-то вроде:

cache.Add("item", "value", TimeSpan.FromSeconds(15)); 

И что кэш настроен на «абсолютный» истечение срока действия, а не «скольжение». Read more here...

+0

Да, я уверен, что я добавляю промежуток времени в 15 секунд, и он настроен для абсолютного истечения времени. –

+0

Странно, переход на абсолютный срок действия исправил проблему для меня. Не уверен, что характер истечения имеет какое-либо отношение к самому выселению. Логично, что возможно иметь скользящий + срок действия ... – DeepSpace101