Предварительно извлекать все записи в кэше 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;
}