From 9bea1f2e0cb32112cb4792340b27d361e983c856 Mon Sep 17 00:00:00 2001 From: Sergey Matvienko Date: Mon, 27 Jun 2022 17:33:08 +0300 Subject: [PATCH] cache flush all - redis cluster support --- .../install/update/DefaultCacheCleanupService.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/DefaultCacheCleanupService.java b/application/src/main/java/org/thingsboard/server/service/install/update/DefaultCacheCleanupService.java index 7a5bc08236..9af49f4a7c 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/update/DefaultCacheCleanupService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/update/DefaultCacheCleanupService.java @@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.cache.Cache; import org.springframework.cache.CacheManager; import org.springframework.context.annotation.Profile; +import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; @@ -82,13 +83,21 @@ public class DefaultCacheCleanupService implements CacheCleanupService { } void clearCacheByName(final String cacheName) { + log.info("Clearing cache [{}]", cacheName); Cache cache = cacheManager.getCache(cacheName); Objects.requireNonNull(cache, "Cache does not exist for name " + cacheName); cache.clear(); } void clearAll() { - redisTemplate.ifPresent(rt -> rt.execute(connection -> - connection.execute("FLUSHALL"), false)); + if (redisTemplate.isPresent()) { + log.info("Flushing all caches"); + redisTemplate.get().execute((RedisCallback) connection -> { + connection.flushAll(); + return null; + }); + return; + } + cacheManager.getCacheNames().forEach(this::clearCacheByName); } }