From 2523e5ef3b8ba5bcd05d2771a0b624e86266634d Mon Sep 17 00:00:00 2001 From: bryan31 Date: Sun, 19 Sep 2021 13:27:55 +0800 Subject: [PATCH] =?UTF-8?q?enhancement=20#I49JP1=20DataBus=E4=B8=ADSlotSiz?= =?UTF-8?q?e=E7=9A=84=E5=A4=A7=E5=B0=8F=E4=B8=8D=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E6=89=A9=E5=B1=95=EF=BC=8C=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E5=BA=94=E5=AF=B9=E9=AB=98=E5=B9=B6=E5=8F=91=E4=B8=8B=E7=9A=84?= =?UTF-8?q?=E6=B5=81=E9=87=8F=E7=AA=81=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yomahub/liteflow/entity/data/DataBus.java | 2 -- .../test/resizeSlot/ResizeSlotSpringbootTest.java | 13 +++++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/entity/data/DataBus.java b/liteflow-core/src/main/java/com/yomahub/liteflow/entity/data/DataBus.java index 7c37f6f21..b00bb2f9e 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/entity/data/DataBus.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/entity/data/DataBus.java @@ -15,9 +15,7 @@ import org.slf4j.LoggerFactory; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.ConcurrentSkipListSet; import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicReferenceArray; import java.util.stream.Collectors; import java.util.stream.IntStream; diff --git a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/resizeSlot/ResizeSlotSpringbootTest.java b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/resizeSlot/ResizeSlotSpringbootTest.java index e5f379a1f..d7c6d7924 100644 --- a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/resizeSlot/ResizeSlotSpringbootTest.java +++ b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/resizeSlot/ResizeSlotSpringbootTest.java @@ -1,6 +1,8 @@ package com.yomahub.liteflow.test.resizeSlot; +import cn.hutool.core.util.ReflectUtil; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.entity.data.DataBus; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.test.BaseTest; @@ -14,6 +16,7 @@ import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import java.util.concurrent.*; @@ -39,7 +42,7 @@ public class ResizeSlotSpringbootTest extends BaseTest { ExecutorService pool = Executors.newCachedThreadPool(); List>> futureList = new ArrayList<>(); - for (int i = 0; i < 500; i++) { + for (int i = 0; i < 100; i++) { Future> future = pool.submit(() -> flowExecutor.execute2Resp("chain1", "arg")); futureList.add(future); } @@ -47,6 +50,12 @@ public class ResizeSlotSpringbootTest extends BaseTest { for(Future> future : futureList){ Assert.assertTrue(future.get().isSuccess()); } - System.out.println("success"); + + //取到static的对象QUEUE + Field field = ReflectUtil.getField(DataBus.class, "QUEUE"); + ConcurrentLinkedQueue queue = (ConcurrentLinkedQueue) ReflectUtil.getStaticFieldValue(field); + + //因为初始slotSize是4,按照0.75的扩容比,要满足100个线程,应该扩容6次,6次之后应该是扩容到114 + Assert.assertEquals(queue.size(),114); } }