Add option for configuring max messages per task
See gh-42341
This commit is contained in:
parent
e133ea3dfc
commit
09b57eff76
|
@ -135,6 +135,7 @@ public final class DefaultJmsListenerContainerFactoryConfigurer {
|
|||
map.from(listenerProperties::isAutoStartup).to(factory::setAutoStartup);
|
||||
map.from(listenerProperties::formatConcurrency).to(factory::setConcurrency);
|
||||
map.from(listenerProperties::getReceiveTimeout).as(Duration::toMillis).to(factory::setReceiveTimeout);
|
||||
map.from(listenerProperties::getMaxMessagesPerTask).to(factory::setMaxMessagesPerTask);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -186,6 +186,11 @@ public class JmsProperties {
|
|||
*/
|
||||
private Duration receiveTimeout = Duration.ofSeconds(1);
|
||||
|
||||
/**
|
||||
* Specify the maximum number of messages to process in one task.
|
||||
*/
|
||||
private Integer maxMessagesPerTask;
|
||||
|
||||
private final Session session = new Session();
|
||||
|
||||
public boolean isAutoStartup() {
|
||||
|
@ -250,6 +255,14 @@ public class JmsProperties {
|
|||
this.receiveTimeout = receiveTimeout;
|
||||
}
|
||||
|
||||
public Integer getMaxMessagesPerTask() {
|
||||
return this.maxMessagesPerTask;
|
||||
}
|
||||
|
||||
public void setMaxMessagesPerTask(Integer maxMessagesPerTask) {
|
||||
this.maxMessagesPerTask = maxMessagesPerTask;
|
||||
}
|
||||
|
||||
public Session getSession() {
|
||||
return this.session;
|
||||
}
|
||||
|
|
|
@ -176,7 +176,8 @@ class JmsAutoConfigurationTests {
|
|||
"spring.jms.listener.session.acknowledgeMode=client",
|
||||
"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.subscription-durable=true", "spring.jms.client-id=exampleId",
|
||||
"spring.jms.listener.max-messages-per-task=10")
|
||||
.run(this::testJmsListenerContainerFactoryWithCustomSettings);
|
||||
}
|
||||
|
||||
|
@ -188,6 +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.isSubscriptionDurable()).isTrue();
|
||||
assertThat(container.getClientId()).isEqualTo("exampleId");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue