Как различить время жизни и время простоя в ehcache - PullRequest
97 голосов
/ 06 апреля 2010

В документах по ehache сказано:

timeToIdleSeconds: Sets the time to idle for an element before it expires.
i.e. The maximum amount of time between accesses before an element expires

timeToLiveSeconds: Sets the time to live for an element before it expires.
i.e. The maximum time between creation time and when an element expires.

Я понимаю timeToIdleSeconds

Но значит ли это, что после создания и первого доступа к элементу кэша timeToLiveSeconds больше не применяется?

Ответы [ 3 ]

146 голосов
/ 06 апреля 2010

timeToIdleSeconds позволяет хранить в кэше объект до тех пор, пока он запрашивается в периоды короче timeToIdleSeconds.timeToLiveSeconds сделает кэшированный объект недействительным через столько секунд, независимо от того, сколько раз или когда он был запрошен.

Скажем, timeToIdleSeconds = 3.Тогда объект будет признан недействительным, если его не запрашивали в течение 4 секунд.

Если timeToLiveSeconds = 90, то объект будет удален из кэша через 90 секунд, даже если ему было запрошено несколько миллисекунд90 секунда своей короткой жизни.

38 голосов
/ 24 февраля 2012

Если вы установите оба, expirationTime будет Math.min(ttlExpiry, ttiExpiry), где

ttlExpiry = creationTime + timeToLive
ttiExpiry = mostRecentTime + timeToIdle

Полный исходный код здесь .

22 голосов
/ 12 августа 2011

Из старой документации 1.1 (доступной в Google Cache, которая проще для просмотра и более информативна, чем текущие документы AFAIK):

timeToIdleSeconds

Это необязательный атрибут.

Допустимые значения: целые числа от 0 до Integer.MAX_VALUE.

Это количество секунд, которое Элемент должен прожить, так как он был последний раз был использован. Используемые средства вставлены или доступны.

0 имеет особое значение, которое заключается в том, чтобы не проверять Элемент на время простаивает, то есть вечно простаивает.

Значением по умолчанию является 0.

timeToLiveSeconds

Это необязательный атрибут.

Допустимые значения - целые числа от 0 до Integer.MAX_VALUE.

Это количество секунд, в течение которых Элемент должен жить, так как он был создано. Созданный означает вставленный в кеш с использованием Cache.put способ.

0 имеет особое значение, которое не состоит в том, чтобы проверять Элемент на время жить, то есть жить вечно.

Значением по умолчанию является 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...