Есть некоторое действие, которые вызывается пользователем. Нужно сделать так, чтобы это действие можно было юзать раз в N секунд. Для реализации я решил использовать com.google.common.cache.LoadingCache.
private static final LoadingCache<String, Boolean> cache = CacheBuilder.newBuilder()
.expireAfterWrite(10, TimeUnit.SECONDS)
.maximumSize(50)
.build(new CacheLoader<String, Boolean>() {
@Override
public Boolean load(@Nonnull String name) throws Exception {
return true;
}
});
public static Boolean get(String name) {
return cache.getIfPresent(name);
}
Т.е. вызов метода get будет всегда возвращать мне true в случае, если ключ присутствует в кэше, а иначе null. Как можно заменить из создания LoadingCache -> expireAfterWrite(N, TimeUnit.SECONDS) внесённые данные будут удаляться спустя N секунд после добавления их туда. Мне не нравится то,что я везде таскаю за собой не нужный boolean, есть ли такой же "автоматический" кэш для одного значения? Если нет, то как лучше улучшить текущий код?
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники