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