Как различать время, чтобы жить и время, чтобы простаивать в ehcache

В документах 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 больше не применимо?

Ответ 1

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

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

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

Ответ 2

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

ttlExpiry = creationTime + timeToLive
ttiExpiry = mostRecentTime + timeToIdle

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

Ответ 3

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

timeToIdleSeconds

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

Правовые значения - это целые числа от 0 до Integer.MAX_VALUE.

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

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

Значение по умолчанию: 0.

timeToLiveSeconds

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

Правовые значения - это целые числа от 0 до Integer.MAX_VALUE.

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

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

Значение по умолчанию: 0.