diff --git a/redisson/src/main/java/org/redisson/eviction/MapCacheEvictionTask.java b/redisson/src/main/java/org/redisson/eviction/MapCacheEvictionTask.java index 3aebe254d8c2f4300cd806ba8b7446eaf6b39eda..081fabc7d49a702e324bce4331891a94d15f2461 100644 --- a/redisson/src/main/java/org/redisson/eviction/MapCacheEvictionTask.java +++ b/redisson/src/main/java/org/redisson/eviction/MapCacheEvictionTask.java @@ -54,7 +54,10 @@ public class MapCacheEvictionTask extends EvictionTask { + "if v ~= false then " + "local t, val = struct.unpack('dLc0', v); " + "local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); " - + "redis.call('publish', KEYS[4], msg); " + + "local listeners = redis.call('publish', KEYS[4], msg); " + + "if (listeners == 0) then " + + "break;" + + "end; " + "end;" + "end;" + "if #expiredKeys1 > 0 then " @@ -69,7 +72,10 @@ public class MapCacheEvictionTask extends EvictionTask { + "if v ~= false then " + "local t, val = struct.unpack('dLc0', v); " + "local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); " - + "redis.call('publish', KEYS[4], msg); " + + "local listeners = redis.call('publish', KEYS[4], msg); " + + "if (listeners == 0) then " + + "break;" + + "end; " + "end;" + "end;" + "if #expiredKeys2 > 0 then "