diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/entity/flow/Chain.java b/liteflow-core/src/main/java/com/yomahub/liteflow/entity/flow/Chain.java index d816be4b1..52596c365 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/entity/flow/Chain.java +++ b/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; diff --git a/liteflow-testcase-springboot/src/test/resources/component/application.properties b/liteflow-testcase-springboot/src/test/resources/component/application.properties index d5b0e66d5..d7ed8babe 100644 --- a/liteflow-testcase-springboot/src/test/resources/component/application.properties +++ b/liteflow-testcase-springboot/src/test/resources/component/application.properties @@ -1 +1,2 @@ -liteflow.rule-source=component/flow.xml \ No newline at end of file +liteflow.rule-source=component/flow.xml +liteflow.retry_count=3 \ No newline at end of file