diff --git a/jcpp-app-bootstrap/src/main/resources/app-service.yml b/jcpp-app-bootstrap/src/main/resources/app-service.yml index ead70c3..72a6265 100644 --- a/jcpp-app-bootstrap/src/main/resources/app-service.yml +++ b/jcpp-app-bootstrap/src/main/resources/app-service.yml @@ -65,6 +65,7 @@ queue: hash_function_name: "${QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}" # murmur3_32, murmur3_128 or sha256 memory: queue-capacity: "${QUEUE_MEMORY_QUEUE_CAPACITY:100000}" + max-pool-size: "${QUEUE_MEMORY_MAX_POOL_SIZE:999}" stats: print-interval-ms: "${QUEUE_MEMORY_STATS_PRINT_INTERVAL_MS:10000}" kafka: diff --git a/jcpp-infrastructure-queue/src/main/java/sanbing/jcpp/infrastructure/queue/memory/DefaultInMemoryStorage.java b/jcpp-infrastructure-queue/src/main/java/sanbing/jcpp/infrastructure/queue/memory/DefaultInMemoryStorage.java index 155f512..b3bbab3 100644 --- a/jcpp-infrastructure-queue/src/main/java/sanbing/jcpp/infrastructure/queue/memory/DefaultInMemoryStorage.java +++ b/jcpp-infrastructure-queue/src/main/java/sanbing/jcpp/infrastructure/queue/memory/DefaultInMemoryStorage.java @@ -21,6 +21,8 @@ public final class DefaultInMemoryStorage implements InMemoryStorage { @Value("${queue.memory.queue-capacity:100000}") private int queueCapacity; + @Value("${queue.memory.max-pool-size:999}") + private int maxPoolSize; @Override public void printStats() { @@ -54,9 +56,9 @@ public final class DefaultInMemoryStorage implements InMemoryStorage { if (firstMsg != null) { final int queueSize = queue.size(); if (queueSize > 0) { - final List entities = new ArrayList<>(Math.min(queueSize, 999) + 1); + final List entities = new ArrayList<>(Math.min(queueSize, maxPoolSize) + 1); entities.add(firstMsg); - queue.drainTo(entities, 999); + queue.drainTo(entities, maxPoolSize); return entities; } return Collections.singletonList(firstMsg);