Commit 47ec8630 authored by Maciej Walkowiak's avatar Maciej Walkowiak Committed by Stephane Nicoll

Add Rabbit idleEventInterval property

This commit adds a property to configure how often idle container events
should be published.

See gh-6666
parent ea3deae0
...@@ -503,6 +503,11 @@ public class RabbitProperties { ...@@ -503,6 +503,11 @@ public class RabbitProperties {
*/ */
private Boolean defaultRequeueRejected; private Boolean defaultRequeueRejected;
/**
* How often to publish idle container events.
*/
private Long idleEventInterval;
/** /**
* Optional properties for a retry interceptor. * Optional properties for a retry interceptor.
*/ */
...@@ -565,6 +570,14 @@ public class RabbitProperties { ...@@ -565,6 +570,14 @@ public class RabbitProperties {
this.defaultRequeueRejected = defaultRequeueRejected; this.defaultRequeueRejected = defaultRequeueRejected;
} }
public Long getIdleEventInterval() {
return idleEventInterval;
}
public void setIdleEventInterval(Long idleEventInterval) {
this.idleEventInterval = idleEventInterval;
}
public ListenerRetry getRetry() { public ListenerRetry getRetry() {
return this.retry; return this.retry;
} }
......
...@@ -90,6 +90,9 @@ public final class SimpleRabbitListenerContainerFactoryConfigurer { ...@@ -90,6 +90,9 @@ public final class SimpleRabbitListenerContainerFactoryConfigurer {
if (listenerConfig.getDefaultRequeueRejected() != null) { if (listenerConfig.getDefaultRequeueRejected() != null) {
factory.setDefaultRequeueRejected(listenerConfig.getDefaultRequeueRejected()); factory.setDefaultRequeueRejected(listenerConfig.getDefaultRequeueRejected());
} }
if (listenerConfig.getIdleEventInterval() != null) {
factory.setIdleEventInterval(listenerConfig.getIdleEventInterval());
}
ListenerRetry retryConfig = listenerConfig.getRetry(); ListenerRetry retryConfig = listenerConfig.getRetry();
if (retryConfig.isEnabled()) { if (retryConfig.isEnabled()) {
RetryInterceptorBuilder<?> builder = (retryConfig.isStateless() RetryInterceptorBuilder<?> builder = (retryConfig.isStateless()
......
...@@ -303,6 +303,7 @@ public class RabbitAutoConfigurationTests { ...@@ -303,6 +303,7 @@ public class RabbitAutoConfigurationTests {
"spring.rabbitmq.listener.maxConcurrency:10", "spring.rabbitmq.listener.maxConcurrency:10",
"spring.rabbitmq.listener.prefetch:40", "spring.rabbitmq.listener.prefetch:40",
"spring.rabbitmq.listener.defaultRequeueRejected:false", "spring.rabbitmq.listener.defaultRequeueRejected:false",
"spring.rabbitmq.listener.idleEventInterval:5",
"spring.rabbitmq.listener.transactionSize:20"); "spring.rabbitmq.listener.transactionSize:20");
SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory = this.context SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory = this.context
.getBean("rabbitListenerContainerFactory", .getBean("rabbitListenerContainerFactory",
...@@ -319,6 +320,7 @@ public class RabbitAutoConfigurationTests { ...@@ -319,6 +320,7 @@ public class RabbitAutoConfigurationTests {
.isSameAs(this.context.getBean("myMessageConverter")); .isSameAs(this.context.getBean("myMessageConverter"));
assertThat(dfa.getPropertyValue("defaultRequeueRejected")) assertThat(dfa.getPropertyValue("defaultRequeueRejected"))
.isEqualTo(Boolean.FALSE); .isEqualTo(Boolean.FALSE);
assertThat(dfa.getPropertyValue("idleEventInterval")).isEqualTo(5L);
Advice[] adviceChain = (Advice[]) dfa.getPropertyValue("adviceChain"); Advice[] adviceChain = (Advice[]) dfa.getPropertyValue("adviceChain");
assertThat(adviceChain).isNotNull(); assertThat(adviceChain).isNotNull();
assertThat(adviceChain.length).isEqualTo(1); assertThat(adviceChain.length).isEqualTo(1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment