From e930a963aded6ba4374e615d27c1ef0f6e9eec68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Thu, 19 Sep 2024 14:19:01 +0200 Subject: [PATCH] Polish "Add option for configuring max messages per task" See gh-42341 --- .../springframework/boot/autoconfigure/jms/JmsProperties.java | 4 +++- .../boot/autoconfigure/jms/JmsAutoConfigurationTests.java | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/JmsProperties.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/JmsProperties.java index 051c12ef6b..aaf6c8a9ad 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/JmsProperties.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/JmsProperties.java @@ -187,7 +187,9 @@ public class JmsProperties { private Duration receiveTimeout = Duration.ofSeconds(1); /** - * Specify the maximum number of messages to process in one task. + * Specify the maximum number of messages to process in one task. By default, + * unlimited unless a SchedulingTaskExecutor is configured on the listener (10 + * messages), as it indicates a preference for short-lived tasks. */ private Integer maxMessagesPerTask; diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfigurationTests.java index 91d0589e75..7df4a2ad49 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfigurationTests.java @@ -177,7 +177,7 @@ class JmsAutoConfigurationTests { "spring.jms.listener.session.transacted=false", "spring.jms.listener.minConcurrency=2", "spring.jms.listener.receiveTimeout=2s", "spring.jms.listener.maxConcurrency=10", "spring.jms.subscription-durable=true", "spring.jms.client-id=exampleId", - "spring.jms.listener.max-messages-per-task=10") + "spring.jms.listener.max-messages-per-task=5") .run(this::testJmsListenerContainerFactoryWithCustomSettings); } @@ -189,7 +189,7 @@ class JmsAutoConfigurationTests { assertThat(container.getConcurrentConsumers()).isEqualTo(2); assertThat(container.getMaxConcurrentConsumers()).isEqualTo(10); assertThat(container).hasFieldOrPropertyWithValue("receiveTimeout", 2000L); - assertThat(container).hasFieldOrPropertyWithValue("maxMessagesPerTask", 10); + assertThat(container).hasFieldOrPropertyWithValue("maxMessagesPerTask", 5); assertThat(container.isSubscriptionDurable()).isTrue(); assertThat(container.getClientId()).isEqualTo("exampleId"); }