Quellcode durchsuchen

修复 计数器被重置的问题

zhouhao vor 8 Jahren
Ursprung
Commit
9218c64b76

+ 2 - 1
hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-redis/src/main/java/org/hswebframework/web/counter/redis/RedissonCounterManager.java

@@ -22,7 +22,8 @@ public class RedissonCounterManager extends AbstractCounterManager {
     @Override
     protected Counter createCount(String name, long initValue) {
         Counter counter = new RedissonCounter(redisson.getAtomicLong(name));
-        counter.set(initValue);
+        if (counter.get() == 0)
+            counter.set(initValue);
         return counter;
     }
 }

+ 3 - 0
hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-redis/src/test/java/org/hswebframework/web/counter/redis/RedissonCounterTest.java

@@ -22,6 +22,9 @@ public class RedissonCounterTest {
         Redisson redisson = (Redisson) Redisson.create(config);
 
         CounterManager counterManager = new RedissonCounterManager(redisson);
+        //重置
+        counterManager.getCounter("test").set(0);
+
         for (int i = 0; i < 100; i++) {
             new Thread(() -> counterManager.getCounter("test").increment()).start();
         }