Хранение и извлечение JCS-кеша из файла
Мы храним токен аутентификации в JCS, при перезапуске сервера контекст кеша теряется. Чтобы преодолеть это, при остановке сервера было решено сохранить список значений JCS в файле, а после перезапуска прочитать файл и сохранить его обратно в JCS. Пожалуйста, помогите мне сохранить список кеша JCS в файле или любом другом возможном решении.
Я не могу изменить правильную реализацию выхода из хранения токена в кеше.
cache = JCS.getInstance("uniqueKey");
if (cache.get(key) == null) {
cache.put(key, value);
}
2 ответа
Сохраняя значения в вашем кэше, вы можете добавить вспомогательное средство indexedDiskCacheFactory. Это сохранит ключ и данные в каталоге, настроенном в вашем файле cache.ccf. Просто добавьте следующий фрагмент для в ваш cache.ccf:
Регионы, предварительно подтвержденные для кэширования:
jcs.region.outputCache=DC
jcs.region.outputCache.cacheattributes.DiskUsagePatternName=UPDATE
Индексированный путь к диску
jcs.auxiliary.DC=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory
jcs.auxiliary.DC.attributes=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes
jcs.auxiliary.DC.attributes.DiskPath=d:/cache/dev/raf
jcs.auxiliary.DC.attributes.MaxKeySize=100000`
Это должно сработать, и как только вы перезапустите сервер, кеш примет значения из файла.
Еще одна вещь, которую следует помнить, — убедиться, что объект, который вы сохраняете, реализует Serializable.
Я потратил много времени, задаваясь вопросом, почему ничего не происходит.