diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/monitor/MonitorBus.java b/liteflow-core/src/main/java/com/yomahub/liteflow/monitor/MonitorBus.java index d0d13a092..ec9d719aa 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/monitor/MonitorBus.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/monitor/MonitorBus.java @@ -7,26 +7,22 @@ */ package com.yomahub.liteflow.monitor; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Timer; -import java.util.concurrent.ConcurrentHashMap; - +import com.yomahub.liteflow.entity.data.DataBus; +import com.yomahub.liteflow.entity.monitor.CompStatistics; +import com.yomahub.liteflow.property.LiteflowConfig; import com.yomahub.liteflow.util.BoundedPriorityBlockingQueue; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - -import com.yomahub.liteflow.entity.data.DataBus; -import com.yomahub.liteflow.property.LiteflowConfig; -import com.yomahub.liteflow.entity.monitor.CompStatistics; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.MessageFormat; +import java.util.*; +import java.util.Map.Entry; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; /** * 监控类元数据,打印执行器类 @@ -40,12 +36,13 @@ public class MonitorBus { private final ConcurrentHashMap> statisticsMap = new ConcurrentHashMap<>(); + private final ScheduledExecutorService printLogScheduler = Executors.newScheduledThreadPool(1); + public MonitorBus(LiteflowConfig liteflowConfig) { this.liteflowConfig = liteflowConfig; if(liteflowConfig.getEnableLog()){ - Timer timer = new Timer(); - timer.schedule(new MonitorTimeTask(this), liteflowConfig.getDelay(), liteflowConfig.getPeriod()); + this.printLogScheduler.scheduleAtFixedRate(new MonitorTimeTask(this), liteflowConfig.getDelay(), liteflowConfig.getPeriod(), TimeUnit.MICROSECONDS); } } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/FlowParser.java b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/FlowParser.java index f250bd283..9907bd8ad 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/FlowParser.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/FlowParser.java @@ -15,8 +15,10 @@ import org.springframework.util.Assert; import org.springframework.util.ResourceUtils; import java.io.IOException; -import java.util.*; -import java.util.function.Consumer; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -30,10 +32,12 @@ public abstract class FlowParser { public abstract void parse(List contentList) throws Exception ; + private static final Pattern p = Pattern.compile("[^\\)\\(]+"); + //条件节点的正则解析 public RegexEntity parseNodeStr(String str) { List list = new ArrayList(); - Pattern p = Pattern.compile("[^\\)\\(]+"); + Matcher m = p.matcher(str); while(m.find()){ list.add(m.group());