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-common/src/main/java/com/dy/common/mw/core/CoreConstantManage.java | 20 +++++++++++--------- 1 files changed, 11 insertions(+), 9 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/core/CoreConstantManage.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/core/CoreConstantManage.java index 262df98..492aab1 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/core/CoreConstantManage.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/core/CoreConstantManage.java @@ -1,5 +1,6 @@ package com.dy.common.mw.core; +import java.util.ArrayList; import java.util.List; import org.apache.logging.log4j.*; @@ -10,10 +11,12 @@ private final static CoreConstantManage instance = new CoreConstantManage() ; - private static Long sleepBigBusy = 100L ;//澶у繖鏃讹紙闄や簡鎭掍箙浠诲姟锛岃繕鏄叾浠栦换鍔★級锛屾牳蹇冪嚎绋嬫殏鍋滈棿闅� - private static Long sleepSmallBusy = 500L ;//灏忓繖鏃讹紙鍙湁鎭掍箙浠诲姟锛屾棤鍏朵粬浠诲姟锛夛紝鏍稿績绾跨▼鏆傚仠闂撮殧 - + private List<CoreConstantTimer> coreConstantTimers ; + + private Long coreInterval = 100L ;//鏍稿績绾跨▼鏆傚仠闂撮殧 + private CoreConstantManage(){ + coreConstantTimers = new ArrayList<>() ; } public static CoreConstantManage getInstance(){ @@ -22,12 +25,10 @@ /** * 璁剧疆鏆傚仠鏃堕暱 - * @param sleepBigBusy 澶у繖鏃讹紙闄や簡鎭掍箙浠诲姟锛岃繕鏄叾浠栦换鍔★級锛屾牳蹇冪嚎绋嬫殏鍋滈棿闅� - * @param sleepSmallBusy 灏忓繖鏃讹紙鍙湁鎭掍箙浠诲姟锛屾棤鍏朵粬浠诲姟锛夛紝鏍稿績绾跨▼鏆傚仠闂撮殧 + * @param coreInterval 鏍稿績绾跨▼鏆傚仠闂撮殧 */ - public void setSleep(Long sleepBigBusy, Long sleepSmallBusy){ - CoreConstantManage.sleepBigBusy = sleepBigBusy ; - CoreConstantManage.sleepSmallBusy = sleepSmallBusy ; + public void setSleep(Long coreInterval){ + this.coreInterval = coreInterval ; } public void start(){ @@ -35,7 +36,8 @@ List<CoreTask> constantTasks = CoreUnit.getAllConstantTasks(); if (constantTasks != null && constantTasks.size() > 0) { for (CoreTask task : constantTasks) { - new CoreConstantThread(sleepBigBusy, sleepSmallBusy, task).start(); + //new CoreConstantThread(sleepBigBusy, sleepSmallBusy, task).start(); + coreConstantTimers.add(new CoreConstantTimer(coreInterval, task).start()); } } } -- Gitblit v1.8.0