浏览代码

bug #I4BAJC setIsEnd结束的流程不需要进行重试

bryan31 3 年之前
父节点
当前提交
21d4a4180e

+ 6 - 2
liteflow-core/src/main/java/com/yomahub/liteflow/entity/flow/Chain.java

@@ -14,6 +14,7 @@ import cn.hutool.core.util.StrUtil;
 import com.yomahub.liteflow.entity.data.DataBus;
 import com.yomahub.liteflow.entity.data.Slot;
 import com.yomahub.liteflow.enums.ExecuteTypeEnum;
+import com.yomahub.liteflow.exception.ChainEndException;
 import com.yomahub.liteflow.exception.ConfigErrorException;
 import com.yomahub.liteflow.exception.FlowSystemException;
 import com.yomahub.liteflow.exception.WhenExecuteException;
@@ -80,11 +81,14 @@ public class Chain implements Executable {
                     //进行重试循环判断,如果重试次数为0,则只进行一次循环
                     for (int i = 0; i <= liteflowConfig.getRetryCount(); i++) {
                         try {
-                            if (i > 0){
-                                LOG.info("[{}]:component[{}] performs {} retry", slot.getRequestId(), executableItem.getExecuteName(), i+1);
+                            if (i > 0) {
+                                LOG.info("[{}]:component[{}] performs {} retry", slot.getRequestId(), executableItem.getExecuteName(), i + 1);
                             }
                             executableItem.execute(slotIndex);
                             break;
+                        } catch (ChainEndException e){
+                            //如果是ChainEndException,则无需重试
+                            throw e;
                         } catch (Exception e) {
                             if (i >= liteflowConfig.getRetryCount()){
                                 throw e;

+ 2 - 1
liteflow-testcase-springboot/src/test/resources/component/application.properties

@@ -1 +1,2 @@
-liteflow.rule-source=component/flow.xml
+liteflow.rule-source=component/flow.xml
+liteflow.retry_count=3