mirror of
https://gitee.com/dromara/liteFlow.git
synced 2026-05-14 12:12:08 +08:00
使用ScheduledExecutorService 代替Timer
正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度
This commit is contained in:
@@ -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<String, BoundedPriorityBlockingQueue<CompStatistics>> 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<String> contentList) throws Exception ;
|
||||
|
||||
private static final Pattern p = Pattern.compile("[^\\)\\(]+");
|
||||
|
||||
//条件节点的正则解析
|
||||
public RegexEntity parseNodeStr(String str) {
|
||||
List<String> list = new ArrayList<String>();
|
||||
Pattern p = Pattern.compile("[^\\)\\(]+");
|
||||
|
||||
Matcher m = p.matcher(str);
|
||||
while(m.find()){
|
||||
list.add(m.group());
|
||||
|
||||
Reference in New Issue
Block a user