diff --git a/src/main/java/we/stats/FlowStat.java b/src/main/java/we/stats/FlowStat.java index 0edc865..a1e47cf 100644 --- a/src/main/java/we/stats/FlowStat.java +++ b/src/main/java/we/stats/FlowStat.java @@ -152,7 +152,7 @@ public class FlowStat { resourceStat.addRequestRT(timeSlotId, rt, isSuccess); } - private ResourceStat getResourceStat(String resourceId) { + public ResourceStat getResourceStat(String resourceId) { ResourceStat resourceStat = null; if (resourceStats.containsKey(resourceId)) { resourceStat = resourceStats.get(resourceId); diff --git a/src/test/java/we/stats/FlowStatTests.java b/src/test/java/we/stats/FlowStatTests.java index 2e3b66a..fbf7b73 100644 --- a/src/test/java/we/stats/FlowStatTests.java +++ b/src/test/java/we/stats/FlowStatTests.java @@ -1,6 +1,7 @@ package we.stats; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.util.List; import java.util.concurrent.ExecutorService; @@ -204,7 +205,7 @@ public class FlowStatTests { } } - //System.out.println(JacksonUtils.writeValueAsString(stat.resourceStats)); + // System.out.println(JacksonUtils.writeValueAsString(stat.resourceStats)); List list = stat.getResourceTimeWindowStats("resource-" + 1, start, end + 3 * 1000, 10); @@ -278,4 +279,42 @@ public class FlowStatTests { } } + @Test + public void testGetResourceStat() throws Throwable { + int threads = 10; + int requests = 100000; + ExecutorService pool = Executors.newFixedThreadPool(threads); + long t1 = System.currentTimeMillis(); + for (int i = 0; i < threads; i++) { + pool.submit(new GetResourceStatJob(requests)); + } + pool.shutdown(); + if (pool.awaitTermination(5, TimeUnit.SECONDS)) { + System.out.println("testGetResourceStat done"); + } else { + System.out.println("testGetResourceStat timeout"); + } + } + + class GetResourceStatJob implements Runnable { + + public GetResourceStatJob(int requests) { + this.requests = requests; + } + + private int requests = 0; + + @Override + public void run() { + for (int i = 0; i < requests; i++) { + try { + ResourceStat rs = stat.getResourceStat("" + i); + assertNotNull(rs); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + }