diff --git a/pom.xml b/pom.xml index 01f053e05..0ede7c5e0 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ liteflow jar 4.0.0 - 1.2.8 + 1.2.9 UTF-8 diff --git a/src/main/java/com/thebeastshop/liteflow/core/FlowExecutor.java b/src/main/java/com/thebeastshop/liteflow/core/FlowExecutor.java index 72a3a031e..a10e217b8 100644 --- a/src/main/java/com/thebeastshop/liteflow/core/FlowExecutor.java +++ b/src/main/java/com/thebeastshop/liteflow/core/FlowExecutor.java @@ -14,6 +14,7 @@ import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -94,6 +95,10 @@ public class FlowExecutor { throw new NoAvailableSlotException("the slot is not exist"); } + if(StringUtils.isBlank(slot.getRequestId())) { + slot.generateRequestId(); + } + if(!isInnerChain) { slot.setRequestData(param); }else { diff --git a/src/main/java/com/thebeastshop/liteflow/entity/data/AbsSlot.java b/src/main/java/com/thebeastshop/liteflow/entity/data/AbsSlot.java index 32a695b88..cb471e792 100644 --- a/src/main/java/com/thebeastshop/liteflow/entity/data/AbsSlot.java +++ b/src/main/java/com/thebeastshop/liteflow/entity/data/AbsSlot.java @@ -36,6 +36,8 @@ public abstract class AbsSlot implements Slot{ private final String CHAIN_REQ_PREFIX = "chain_req_"; + private final String REQUEST_ID = "req_id"; + private Deque executeSteps = new ArrayDeque(); protected ConcurrentHashMap dataMap = new ConcurrentHashMap(); @@ -117,4 +119,14 @@ public abstract class AbsSlot implements Slot{ } LOG.info(str.toString()); } + + @Override + public void generateRequestId() { + dataMap.put(REQUEST_ID, System.nanoTime()); + } + + @Override + public String getRequestId() { + return (String)dataMap.get(REQUEST_ID); + } } diff --git a/src/main/java/com/thebeastshop/liteflow/entity/data/Slot.java b/src/main/java/com/thebeastshop/liteflow/entity/data/Slot.java index 3e0d706f8..a7163e9a2 100644 --- a/src/main/java/com/thebeastshop/liteflow/entity/data/Slot.java +++ b/src/main/java/com/thebeastshop/liteflow/entity/data/Slot.java @@ -41,4 +41,8 @@ public interface Slot { public void addStep(CmpStep step); public void printStep(); + + public void generateRequestId(); + + public String getRequestId(); }