Как различать время, чтобы жить и время, чтобы простаивать в 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.