From b397edee2be2dfcc3f28eeac50298b4de26b1afa Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 13 十二月 2024 16:53:45 +0800
Subject: [PATCH] 取水口日取水量表中,出现一些大数,明显不正确,发析系统日志,发现一些阀控器会上报一些累计流量为0的数据,且无规律,推测是其不能从水表读取到累计流量时会上报0值。如果间歇上报0值,间歇上报一些非0值,非0值减去0值,就会出现大数,一天中出现几次那么会大数进行累加,数值将更大。为此变更算法,规避这种情况,但也会丢失一些流量值。

---
 pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/CaffeineCacheConfiguration.java |   29 ++++++++++++++++++++++++++---
 1 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/CaffeineCacheConfiguration.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/CaffeineCacheConfiguration.java
index d50a4e1..1c85166 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/CaffeineCacheConfiguration.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/CaffeineCacheConfiguration.java
@@ -1,7 +1,9 @@
 package com.dy.sso.config;
 
 
+import com.dy.common.util.NumUtil;
 import com.github.benmanes.caffeine.cache.Caffeine;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cache.CacheManager;
 import org.springframework.cache.caffeine.CaffeineCacheManager;
 import org.springframework.context.annotation.Bean;
@@ -10,6 +12,15 @@
 
 @Configuration
 public class CaffeineCacheConfiguration {
+    private static final int cacheInitialCapacityDefault = 10 ;
+    private static final int cacheMaximumSizeDefault = 10000 ;
+    private static final int cacheDurationDefault = 720 ;
+
+    @Value("${pipIrr.sso.cacheMaximumSize}")
+    private String cacheMaximumSize ;
+
+    @Value("${pipIrr.sso.cacheDuration}")
+    private String cacheDuration ;
     /*
       initialCapacity=[integer]: 鍒濆鐨勭紦瀛樼┖闂村ぇ灏�
       maximumSize=[long]: 缂撳瓨鐨勬渶澶ф潯鏁�
@@ -28,11 +39,23 @@
      */
     @Bean
     public CacheManager cacheManager() {
+        int cacheMaximumSizeInt;
+        int cacheDurationInt;
+        if(NumUtil.isPlusIntNumber(cacheMaximumSize)){
+            cacheMaximumSizeInt = Integer.parseInt(cacheMaximumSize) ;
+        }else{
+            cacheMaximumSizeInt = cacheMaximumSizeDefault ;
+        }
+        if(NumUtil.isPlusIntNumber(cacheDuration)){
+            cacheDurationInt = Integer.parseInt(cacheDuration) ;
+        }else{
+            cacheDurationInt = cacheDurationDefault ;
+        }
         CaffeineCacheManager cacheManager = new CaffeineCacheManager();
         cacheManager.setCaffeine(Caffeine.newBuilder()
-                .initialCapacity(10)
-                .maximumSize(10000)
-                .expireAfterAccess(30, TimeUnit.MINUTES));
+                .initialCapacity(cacheInitialCapacityDefault)
+                .maximumSize(cacheMaximumSizeInt)
+                .expireAfterAccess(cacheDurationInt, TimeUnit.MINUTES));
 
         return cacheManager;
     }

--
Gitblit v1.8.0