From 5ce3b049ed8bc3594f60b4567fa8d712495137bd Mon Sep 17 00:00:00 2001 From: "bryan.zhang" Date: Wed, 10 Jan 2018 14:08:47 +0800 Subject: [PATCH] =?UTF-8?q?slot=E5=A2=9E=E5=8A=A0=E4=BA=86requestId?= =?UTF-8?q?=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../com/thebeastshop/liteflow/core/FlowExecutor.java | 5 +++++ .../thebeastshop/liteflow/entity/data/AbsSlot.java | 12 ++++++++++++ .../com/thebeastshop/liteflow/entity/data/Slot.java | 4 ++++ 4 files changed, 22 insertions(+), 1 deletion(-) 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(); }