Асинхронная перезагрузка кеша гуавы - PullRequest
0 голосов
/ 12 декабря 2018

Я следовал за документацией кеша гуавы и кодировал асинхронную перезагрузку кеша в моем приложении.Кроме того, во время запуска приложения я загружаю кеш, используя cache.put.Я перезагружаю его каждые 15 минут после этого (при условии, что поступает запрос в / после 15 минут).Во время отладки я обнаружил, что перезагрузка вызывается правильно, и мое приложение не ожидает обновления графика из БД.

Мой вопрос: мне нужно продолжать переопределять метод загрузки в моем приложении?Как описано выше, начальная загрузка кеша выполняется при запуске приложения.

Ниже приведен мой перефразированный код (примерно такой же, как в документации):

private LoadingCache<String, Graph> cache = CacheBuilder.newBuilder()
        .refreshAfterWrite(2, TimeUnit.MINUTES)
        .recordStats()           
        .build(new CacheLoader<String, Graph>() {
            @Override
            public Graph load(String key) {
                return getGraphFromDB(key);
            }

            public ListenableFuture<Graph> reload(final String key, Graph prev) {
                ListenableFutureTask<Graph> task = ListenableFutureTask.create(new Callable<Graph>() {
                    public Graph call() {
                        Graph graph = prev;
                        try {
                            graph = getGraphFromDB(key);
                        } catch (Exception e) {
                            logger.error("There was an exception when reloading the cache",e);                               
                        }
                        finally {
                            return graph;
                        }
                    }
                });
               executor.execute(task);
                return task;
            }
        });

1 Ответ

0 голосов
/ 17 декабря 2018

Я написал статью с вопросом, основанную на моём понимании кэша гуавы и чата с @BenManes выше.

Вот оно: https://www.linkedin.com/pulse/asynchronous-reload-guava-cache-caffeine-bhanuprakash-devapatla/

HTH

...