From 7838e8f9613eb254658c8e88b7087c41a5300e56 Mon Sep 17 00:00:00 2001 From: bryan31 Date: Fri, 11 Feb 2022 14:39:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=B8=80=E4=BA=9B=E6=B3=A8?= =?UTF-8?q?=E9=87=8A=E7=9A=84=E4=B8=8A=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yomahub/liteflow/core/NodeComponent.java | 23 ++++------------ .../entity/executor/DefaultNodeExecutor.java | 2 +- .../entity/executor/NodeExecutor.java | 18 +++---------- .../entity/executor/NodeExecutorHelper.java | 26 +++---------------- .../parallel/CompletableFutureTimeout.java | 11 ++------ .../yomahub/liteflow/parser/FlowParser.java | 4 +-- .../liteflow/thread/ExecutorBuilder.java | 13 +--------- .../liteflow/thread/ExecutorHelper.java | 18 +++---------- 8 files changed, 21 insertions(+), 94 deletions(-) diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java index d09cae0d1..745cc470d 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java @@ -104,18 +104,14 @@ public abstract class NodeComponent{ public abstract void process() throws Exception; - /** - * process前置处理 - */ + //process前置处理 public void beforeProcess(String nodeId, Slot slot) { if (ObjectUtil.isNotNull(ComponentScanner.cmpAroundAspect)) { ComponentScanner.cmpAroundAspect.beforeProcess(nodeId, slot); } } - /** - * process后置处理 - */ + //process后置处理 public void afterProcess(String nodeId, Slot slot) { if (ObjectUtil.isNotNull(ComponentScanner.cmpAroundAspect)) { ComponentScanner.cmpAroundAspect.afterProcess(nodeId, slot); @@ -123,26 +119,17 @@ public abstract class NodeComponent{ } - /** - * 是否进入该节点 - * @return boolean - */ + //是否进入该节点 public boolean isAccess(){ return true; } - /** - * 出错是否继续执行(这个只适用于串行流程,并行节点不起作用) - * @return boolean - */ + //出错是否继续执行(这个只适用于串行流程,并行节点不起作用) public boolean isContinueOnError() { return false; } - /** - * 是否结束整个流程(不往下继续执行) - * @return boolean - */ + //是否结束整个流程(不往下继续执行) public boolean isEnd() { Boolean isEnd = isEndTL.get(); if(ObjectUtil.isNull(isEnd)){ diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/entity/executor/DefaultNodeExecutor.java b/liteflow-core/src/main/java/com/yomahub/liteflow/entity/executor/DefaultNodeExecutor.java index 148b113a6..3bf745670 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/entity/executor/DefaultNodeExecutor.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/entity/executor/DefaultNodeExecutor.java @@ -8,7 +8,7 @@ import com.yomahub.liteflow.entity.data.Slot; * 默认的节点执行器 * * @author sikadai - * @date 2022/1/24 17:00 + * @since 2.6.9 */ public class DefaultNodeExecutor extends NodeExecutor { @Override diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/entity/executor/NodeExecutor.java b/liteflow-core/src/main/java/com/yomahub/liteflow/entity/executor/NodeExecutor.java index c7b4fc35a..9acc99915 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/entity/executor/NodeExecutor.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/entity/executor/NodeExecutor.java @@ -14,17 +14,12 @@ import java.util.List; * 节点执行器 - 自定的执行策略需要实现该类 * * @author sikadai - * @date 2022/1/24 17:00 + * @since 2.6.9 */ public abstract class NodeExecutor { protected final Logger LOG = LoggerFactory.getLogger(this.getClass()); - /** - * 执行器执行入口-若需要更大维度的执行方式可以重写该方法 - * - * @param instance : 执行的节点实例 - * @throws Exception - */ + //执行器执行入口-若需要更大维度的执行方式可以重写该方法 public void execute(NodeComponent instance) throws Exception { int retryCount = instance.getRetryCount(); List> forExceptions = Arrays.asList(instance.getRetryForExceptions()); @@ -52,14 +47,7 @@ public abstract class NodeExecutor { } } - /** - * 执行重试逻辑 - 子类通过实现该方法进行重试逻辑的控制 - * - * @param instance : 执行的节点实例 - * @param currentRetryCount : 当前重试的次数 - * @throws Exception - */ - + //执行重试逻辑 - 子类通过实现该方法进行重试逻辑的控制 protected void retry(NodeComponent instance, int currentRetryCount) throws Exception { Slot slot = DataBus.getSlot(instance.getSlotIndex()); LOG.info("[{}]:component[{}] performs {} retry", slot.getRequestId(), instance.getNodeId(), currentRetryCount + 1); diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/entity/executor/NodeExecutorHelper.java b/liteflow-core/src/main/java/com/yomahub/liteflow/entity/executor/NodeExecutorHelper.java index 93b86365f..5c3017aaf 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/entity/executor/NodeExecutorHelper.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/entity/executor/NodeExecutorHelper.java @@ -12,45 +12,27 @@ import java.util.Map; * 节点执行器帮助器 * * @author sikadai - * @date 2022/1/24 19:00 + * @since 2.6.9 */ public class NodeExecutorHelper { - /** - * 此处使用Map缓存线程池信息 - * key - 节点执行器类Class全名 - * value - 节点执行器对象 - */ + //此处使用Map缓存线程池信息 private final Map, NodeExecutor> nodeExecutorMap; private NodeExecutorHelper() { nodeExecutorMap = Maps.newConcurrentMap(); } - /** - * 使用静态内部类实现单例模式 - */ + //使用静态内部类实现单例模式 private static class Holder { static final NodeExecutorHelper INSTANCE = new NodeExecutorHelper(); } - /** - * 获取帮助者的实例 - */ + //获取帮助者的实例 public static NodeExecutorHelper loadInstance() { // 外围类能直接访问内部类(不管是否是静态的)的私有变量 return Holder.INSTANCE; } - /** - * 单例模式驱动-通过调用该方法构建节点执行器 - */ - /** - * 单例模式驱动-通过调用该方法构建节点执行器 - * 若nodeExecutorClass为空,则会使用默认的节点执行器 - * - * @param nodeExecutorClass : 节点执行器的Class - * @return - */ public NodeExecutor buildNodeExecutor(Class nodeExecutorClass) { // 高频操作-采取apache判空操作-效率高于hutool的isBlank将近3倍 if (ObjectUtil.isNull(nodeExecutorClass)) { diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/entity/flow/parallel/CompletableFutureTimeout.java b/liteflow-core/src/main/java/com/yomahub/liteflow/entity/flow/parallel/CompletableFutureTimeout.java index 387c0fd59..49a4510fa 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/entity/flow/parallel/CompletableFutureTimeout.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/entity/flow/parallel/CompletableFutureTimeout.java @@ -23,9 +23,6 @@ import java.util.function.Function; * @since 2.6.4 */ public class CompletableFutureTimeout { - /** - * Singleton delay scheduler, used only for starting and * cancelling tasks. - */ static final class Delayer { static ScheduledFuture delay(Runnable command, long delay, TimeUnit unit) { return delayer.schedule(command, delay, unit); @@ -57,17 +54,13 @@ public class CompletableFutureTimeout { return result; } - /** - * 哪个先完成 就apply哪一个结果 这是一个关键的API,exceptionally出现异常后返回默认值 - */ + //哪个先完成 就apply哪一个结果 这是一个关键的API,exceptionally出现异常后返回默认值 public static CompletableFuture completeOnTimeout(T t, CompletableFuture future, long timeout, TimeUnit unit) { final CompletableFuture timeoutFuture = timeoutAfter(timeout, unit); return future.applyToEither(timeoutFuture, Function.identity()).exceptionally((throwable) -> t); } - /** - * 哪个先完成 就apply哪一个结果 这是一个关键的API,不设置默认值,超时后抛出异常 - */ + //哪个先完成 就apply哪一个结果 这是一个关键的API,不设置默认值,超时后抛出异常 public static CompletableFuture orTimeout(T t, CompletableFuture future, long timeout, TimeUnit unit) { final CompletableFuture timeoutFuture = timeoutAfter(timeout, unit); return future.applyToEither(timeoutFuture, Function.identity()).exceptionally((throwable) -> t); 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 1c74692e4..9b50230b6 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 @@ -27,9 +27,7 @@ public abstract class FlowParser { public abstract void parse(List contentList) throws Exception; - /** - * 根据配置的ruleSource查找匹配的资源 - */ + //根据配置的ruleSource查找匹配的资源 protected Resource[] matchRuleResources(final List pathList) throws IOException { Assert.notEmpty(pathList, "rule source must not be null"); diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/thread/ExecutorBuilder.java b/liteflow-core/src/main/java/com/yomahub/liteflow/thread/ExecutorBuilder.java index 3a8e80e48..6349f7b07 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/thread/ExecutorBuilder.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/thread/ExecutorBuilder.java @@ -15,18 +15,7 @@ public interface ExecutorBuilder { ExecutorService buildExecutor(); - /** - *

- * 构建默认的线程池对象 - *

- * @author sikadai - * @date 2022/1/21 23:07 - * @param corePoolSize : 核心线程池数量 - * @param maximumPoolSize : 最大线程池数量 - * @param queueCapacity : 队列的容量 - * @param threadName : 线程吃名称 - * @return java.util.concurrent.ExecutorService - */ + //构建默认的线程池对象 default ExecutorService buildDefaultExecutor(int corePoolSize, int maximumPoolSize, int queueCapacity, String threadName) { return TtlExecutors.getTtlExecutorService(new ThreadPoolExecutor(corePoolSize, maximumPoolSize, diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/thread/ExecutorHelper.java b/liteflow-core/src/main/java/com/yomahub/liteflow/thread/ExecutorHelper.java index 8aeafb944..2bfca78cf 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/thread/ExecutorHelper.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/thread/ExecutorHelper.java @@ -53,7 +53,7 @@ public class ExecutorHelper { } /** - * 使用默认的等待时间1分钟,来关闭目标线程组。 + * *

* * @param pool 需要关闭的线程组. @@ -63,6 +63,7 @@ public class ExecutorHelper { } /** + *

* 关闭ExecutorService的线程管理者 *

* @@ -85,9 +86,7 @@ public class ExecutorHelper { } } - /** - * 构建全局默认线程池 - */ + //构建全局默认线程池 public ExecutorService buildExecutor() { LiteflowConfig liteflowConfig = LiteflowConfigGetter.get(); if (!executorServiceMap.containsKey(liteflowConfig.getThreadExecutorClass())) { @@ -97,16 +96,7 @@ public class ExecutorHelper { return executorServiceMap.get(liteflowConfig.getThreadExecutorClass()); } - /** - *

- * 构建线程池执行器 - 支持多个when公用一个线程池 - *

- * - * @param threadExecutorClass : 线程池构建者的Class全类名 - * @return java.util.concurrent.ExecutorService - * @author sikadai - * @date 2022/1/21 23:00 - */ + //构建线程池执行器 - 支持多个when公用一个线程池 public ExecutorService buildExecutor(String threadExecutorClass) { if (StrUtil.isBlank(threadExecutorClass)) { return buildExecutor();