Skip to content

Commit 5976d44

Browse files
committed
Merge pull request spring-projects#6666 from maciejwalkowiak:spring-amqp-idle-event-interval-property
* pr/6666: Polish contribution Add Rabbit idleEventInterval property
2 parents ea3deae + 6fb53f9 commit 5976d44

File tree

4 files changed

+19
-0
lines changed

4 files changed

+19
-0
lines changed

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,11 @@ public static class Listener {
503503
*/
504504
private Boolean defaultRequeueRejected;
505505

506+
/**
507+
* How often idle container events should be published in milliseconds.
508+
*/
509+
private Long idleEventInterval;
510+
506511
/**
507512
* Optional properties for a retry interceptor.
508513
*/
@@ -565,6 +570,14 @@ public void setDefaultRequeueRejected(Boolean defaultRequeueRejected) {
565570
this.defaultRequeueRejected = defaultRequeueRejected;
566571
}
567572

573+
public Long getIdleEventInterval() {
574+
return this.idleEventInterval;
575+
}
576+
577+
public void setIdleEventInterval(Long idleEventInterval) {
578+
this.idleEventInterval = idleEventInterval;
579+
}
580+
568581
public ListenerRetry getRetry() {
569582
return this.retry;
570583
}

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/SimpleRabbitListenerContainerFactoryConfigurer.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ public void configure(SimpleRabbitListenerContainerFactory factory,
9090
if (listenerConfig.getDefaultRequeueRejected() != null) {
9191
factory.setDefaultRequeueRejected(listenerConfig.getDefaultRequeueRejected());
9292
}
93+
if (listenerConfig.getIdleEventInterval() != null) {
94+
factory.setIdleEventInterval(listenerConfig.getIdleEventInterval());
95+
}
9396
ListenerRetry retryConfig = listenerConfig.getRetry();
9497
if (retryConfig.isEnabled()) {
9598
RetryInterceptorBuilder<?> builder = (retryConfig.isStateless()

spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfigurationTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,7 @@ public void testRabbitListenerContainerFactoryWithCustomSettings() {
303303
"spring.rabbitmq.listener.maxConcurrency:10",
304304
"spring.rabbitmq.listener.prefetch:40",
305305
"spring.rabbitmq.listener.defaultRequeueRejected:false",
306+
"spring.rabbitmq.listener.idleEventInterval:5",
306307
"spring.rabbitmq.listener.transactionSize:20");
307308
SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory = this.context
308309
.getBean("rabbitListenerContainerFactory",
@@ -319,6 +320,7 @@ public void testRabbitListenerContainerFactoryWithCustomSettings() {
319320
.isSameAs(this.context.getBean("myMessageConverter"));
320321
assertThat(dfa.getPropertyValue("defaultRequeueRejected"))
321322
.isEqualTo(Boolean.FALSE);
323+
assertThat(dfa.getPropertyValue("idleEventInterval")).isEqualTo(5L);
322324
Advice[] adviceChain = (Advice[]) dfa.getPropertyValue("adviceChain");
323325
assertThat(adviceChain).isNotNull();
324326
assertThat(adviceChain.length).isEqualTo(1);

spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -863,6 +863,7 @@ content into your application; rather pick only the properties that you need.
863863
spring.rabbitmq.listener.auto-startup=true # Start the container automatically on startup.
864864
spring.rabbitmq.listener.concurrency= # Minimum number of consumers.
865865
spring.rabbitmq.listener.default-requeue-rejected= # Whether or not to requeue delivery failures; default `true`.
866+
spring.rabbitmq.idle-event-interval= # How often idle container events should be published in milliseconds.
866867
spring.rabbitmq.listener.max-concurrency= # Maximum number of consumers.
867868
spring.rabbitmq.listener.prefetch= # Number of messages to be handled in a single request. It should be greater than or equal to the transaction size (if used).
868869
spring.rabbitmq.listener.retry.enabled=false # Whether or not publishing retries are enabled.

0 commit comments

Comments
 (0)