2013-09-06 13 views
6

EHCache belgelerine diyor ki:EhCache - süresi dolduran öğeyi (timeToIdleSeconds veya timeToLiveSeconds nedeniyle) kaldırmaya çalışmadan kaldırın.

  • daha bir saat (timeToIdleSeconds) daha boşta kaldıktan myCache bir girdi erişme tahliye edilecek o öğeyi neden olur.
  • Bir girdinin süresi dolar ancak erişilmezse ve kaynak kısıtlamaları tahliyeyi zorlamazsa, geçerlilik süresi sona ermiş olur.
  • Son kullanma tarihi geçen bir öğe, önbellekten silecek ve boş değerlere dönecektir.

uygulamak ve bir eleman süresi dolmuş olduğunu almak için bir CacheEventListener kayıt varsa, sen süresi dolmuş bir eleman elde etmeye çalışmak zaman olay tetiklenir görebilir ancak 'timeToIdleSeconds' sonra olabilir.

Son kullanma tarihi geçen elemanın kullanım süresi sona ermeden sonra zorlamak mümkün mü? Çünkü bu süreden sonra benim durumumda kimse tekrar almaya çalışmayacak.

Teşekkür ederiz.

+1

ayrıca bkz: http://stackoverflow.com/questions/8838039/ehcache-does-not-remove-element-from-memory-on -evlilik – butallmj

cevap

6
Aşağıdaki kod ile bunu yaptık

:

cache.evictExpiredElements(); 
cache.flush(); 
+0

Ben de benzer şekilde yaptım. AUTO-tahliye ile bir çözüm aradım ama işe yarıyor. Teşekkür ederim. – gfjr

+0

Otomatik olarak da yapmak istedim, ama EhCache dokümanlarında bir ipucu var - 'expired'! =' Remove', bu yüzden el ile yapmak zorundaydım – skayred

İlgili konular