Как мне использовать ehcache для перезагрузки данных? - PullRequest
2 голосов
/ 20 октября 2011

У меня есть список из 100 элементов (строк), которые я хочу поместить в ehcache.Я установлю их истекает через 1 час.После этого я хочу прочитать базу данных и обновить кэш.

Я не смог найти пример того, как это сделать?

Кто-нибудь знает один из них?

Спасибо

Ответы [ 2 ]

1 голос
/ 21 октября 2011

Вот метод в CacheConfiguration, чтобы установить время жизни элемента в кэше http://ehcache.org/apidocs/net/sf/ehcache/config/CacheConfiguration.html#timeToLiveSeconds(long)

У него есть соответствующий аргумент в конструкторе кэша http://ehcache.org/apidocs/net/sf/ehcache/Cache.html#Cache%28java.lang.String,%20int,%20boolean,%20boolean,%20long,%20long%29

Это значения по умолчаниюдля элементов в particaluar-кэше - его можно указать и для точного элемента http://ehcache.org/apidocs/net/sf/ehcache/Element.html#setTimeToLive(int)

Вот небольшой пример его использования:

import java.util.concurrent.TimeUnit;

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;

public class EhCacheFixedExpirationTest {
public static void main(String[] args) {
    CacheManager cacheManager = new CacheManager();
    Cache testCache = new Cache("testCache", 100, false, false, 10, 10);
    cacheManager.addCache(testCache);

    Element element = new Element("1", "20");
    element.setTimeToLive(1);
    testCache.put(element);

    long start = System.nanoTime();

    while (testCache.get("1") != null) {
        //wait
    }
    System.out.println(TimeUnit.MILLISECONDS.convert((System.nanoTime() - start), TimeUnit.NANOSECONDS));
}
}

Вывод почти всегда равен 1000, поэтому точностьдовольно хорошо.Используется Ehcache 2.4.6

0 голосов
/ 02 октября 2012

Обратите внимание, вы также можете использовать SelfPopulationCache в сочетании с тайм-аутом элемента кэша , чтобы удовлетворить то, что вы хотите.

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