Предварительно извлекать все записи в кэше Java-кофеина

Я пытаюсь создать кеш, используя https://github.com/ben-manes/caffeine, где мне нужно получить все записи во время загрузки, и я не знаю все ключи заранее. Мой CachLoader имеет что-то вроде этого и пытается кэшировать все при запуске. Но, похоже, мне нужно знать все ключи заранее, если я хочу предварительно извлечь все записи в кеш? Я что-то пропустил?

Итак, скажем, я вызываю cache.getAll(10) и только 10 ->100 будет кэшироваться, даже если метод loadAll возвращает 3 записи (10->100, 20->400, 30->900)

@Override
public Map<Integer, Integer> loadAll(Iterable<? extends Integer> keys)
{
    // gets called for the keys which are not present in the cache only by getAll
    // we will load all keys irrespective of what is passed in
    System.out.println("in loadAll");
    // problem here is it is only caching the supplied keys
    Map<Integer, Integer> map = new HashMap<Integer, Integer>();
    map.put(10, 100);
    map.put(20, 400);
    map.put(30, 900);
    return map;
}   

0 ответов

Другие вопросы по тегам