From 550416857814d6d1f9141e60fccf76b2fc95a841 Mon Sep 17 00:00:00 2001 From: huangfeng Date: Fri, 28 Jun 2024 09:49:33 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E8=AE=BE=E7=BD=AE=E4=B8=80=E5=A4=A9?= =?UTF-8?q?=E5=8F=AA=E5=8F=91=E4=B8=80=E4=B8=AA=E8=A7=A6=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xydl/cac/comparator/MissCompare.java | 12 +++++++++++- src/main/java/com/xydl/cac/task/CacheTask.java | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/xydl/cac/comparator/MissCompare.java b/src/main/java/com/xydl/cac/comparator/MissCompare.java index a685ca5..0ea1c43 100644 --- a/src/main/java/com/xydl/cac/comparator/MissCompare.java +++ b/src/main/java/com/xydl/cac/comparator/MissCompare.java @@ -1,18 +1,24 @@ package com.xydl.cac.comparator; +import com.xydl.cac.exception.BusinessException; + import java.util.Date; import java.util.LinkedHashMap; public class MissCompare extends Comparator { + // 一天触发一次 + boolean done = false; + @Override public boolean compare(Object source, String threshold, Date lastDTime) { - if (source == null && lastDTime != null) { + if (!done && source == null && lastDTime != null) { long t2 = Long.parseLong(threshold); long last = System.currentTimeMillis() - lastDTime.getTime(); hours = last / 1000 / 60 / 60; if (hours >= t2) { + done = true; return true; } } @@ -28,6 +34,10 @@ public class MissCompare extends Comparator { @Override public void valid(String operator, String threshold) throws Exception { + Integer hours = Integer.parseInt(threshold); + if (hours <= 1) { + throw new BusinessException("阈值必须大于1"); + } } } diff --git a/src/main/java/com/xydl/cac/task/CacheTask.java b/src/main/java/com/xydl/cac/task/CacheTask.java index 0afd9d3..f0c87f0 100644 --- a/src/main/java/com/xydl/cac/task/CacheTask.java +++ b/src/main/java/com/xydl/cac/task/CacheTask.java @@ -27,7 +27,7 @@ public class CacheTask { public static List zsb_Cache = null; public static ConcurrentHashMap rule_Cache = new ConcurrentHashMap<>(); - @Scheduled(cron = "0 1 * * * ?") + @Scheduled(cron = "0 9 * * * ?") private void clearCache() { unit_Cache.clear(); modevType_Cache = null;