Add support for configuring missingQueuesFatal property
See gh-14252
This commit is contained in:
parent
b5e113c64f
commit
91e731a4b4
|
@ -40,6 +40,8 @@ public final class DirectRabbitListenerContainerFactoryConfigurer extends
|
||||||
configure(factory, connectionFactory, config);
|
configure(factory, connectionFactory, config);
|
||||||
map.from(config::getConsumersPerQueue).whenNonNull()
|
map.from(config::getConsumersPerQueue).whenNonNull()
|
||||||
.to(factory::setConsumersPerQueue);
|
.to(factory::setConsumersPerQueue);
|
||||||
|
map.from(config::getMissingQueuesFatal).whenNonNull()
|
||||||
|
.to(factory::setMissingQueuesFatal);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -665,6 +665,13 @@ public class RabbitProperties {
|
||||||
*/
|
*/
|
||||||
private Integer transactionSize;
|
private Integer transactionSize;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether the context should be ended up with failure if there are no any queues
|
||||||
|
* available on the broker or the container should be stopped if queues have been
|
||||||
|
* removed while the container is running.
|
||||||
|
*/
|
||||||
|
private Boolean missingQueuesFatal;
|
||||||
|
|
||||||
public Integer getConcurrency() {
|
public Integer getConcurrency() {
|
||||||
return this.concurrency;
|
return this.concurrency;
|
||||||
}
|
}
|
||||||
|
@ -689,6 +696,14 @@ public class RabbitProperties {
|
||||||
this.transactionSize = transactionSize;
|
this.transactionSize = transactionSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Boolean getMissingQueuesFatal() {
|
||||||
|
return this.missingQueuesFatal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMissingQueuesFatal(Boolean missingQueuesFatal) {
|
||||||
|
this.missingQueuesFatal = missingQueuesFatal;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -701,6 +716,12 @@ public class RabbitProperties {
|
||||||
*/
|
*/
|
||||||
private Integer consumersPerQueue;
|
private Integer consumersPerQueue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether the context should be ended up with failure if there are no any queues
|
||||||
|
* available on the broker.
|
||||||
|
*/
|
||||||
|
private Boolean missingQueuesFatal;
|
||||||
|
|
||||||
public Integer getConsumersPerQueue() {
|
public Integer getConsumersPerQueue() {
|
||||||
return this.consumersPerQueue;
|
return this.consumersPerQueue;
|
||||||
}
|
}
|
||||||
|
@ -709,6 +730,14 @@ public class RabbitProperties {
|
||||||
this.consumersPerQueue = consumersPerQueue;
|
this.consumersPerQueue = consumersPerQueue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Boolean getMissingQueuesFatal() {
|
||||||
|
return this.missingQueuesFatal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMissingQueuesFatal(Boolean missingQueuesFatal) {
|
||||||
|
this.missingQueuesFatal = missingQueuesFatal;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Template {
|
public static class Template {
|
||||||
|
|
|
@ -43,6 +43,8 @@ public final class SimpleRabbitListenerContainerFactoryConfigurer extends
|
||||||
map.from(config::getMaxConcurrency).whenNonNull()
|
map.from(config::getMaxConcurrency).whenNonNull()
|
||||||
.to(factory::setMaxConcurrentConsumers);
|
.to(factory::setMaxConcurrentConsumers);
|
||||||
map.from(config::getTransactionSize).whenNonNull().to(factory::setTxSize);
|
map.from(config::getTransactionSize).whenNonNull().to(factory::setTxSize);
|
||||||
|
map.from(config::getMissingQueuesFatal).whenNonNull()
|
||||||
|
.to(factory::setMissingQueuesFatal);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -468,6 +468,7 @@ public class RabbitAutoConfigurationTests {
|
||||||
"spring.rabbitmq.listener.simple.maxConcurrency:10",
|
"spring.rabbitmq.listener.simple.maxConcurrency:10",
|
||||||
"spring.rabbitmq.listener.simple.prefetch:40",
|
"spring.rabbitmq.listener.simple.prefetch:40",
|
||||||
"spring.rabbitmq.listener.simple.defaultRequeueRejected:false",
|
"spring.rabbitmq.listener.simple.defaultRequeueRejected:false",
|
||||||
|
"spring.rabbitmq.listener.simple.missingQueuesFatal:false",
|
||||||
"spring.rabbitmq.listener.simple.idleEventInterval:5",
|
"spring.rabbitmq.listener.simple.idleEventInterval:5",
|
||||||
"spring.rabbitmq.listener.simple.transactionSize:20")
|
"spring.rabbitmq.listener.simple.transactionSize:20")
|
||||||
.run((context) -> {
|
.run((context) -> {
|
||||||
|
@ -500,6 +501,7 @@ public class RabbitAutoConfigurationTests {
|
||||||
"spring.rabbitmq.listener.direct.consumers-per-queue:5",
|
"spring.rabbitmq.listener.direct.consumers-per-queue:5",
|
||||||
"spring.rabbitmq.listener.direct.prefetch:40",
|
"spring.rabbitmq.listener.direct.prefetch:40",
|
||||||
"spring.rabbitmq.listener.direct.defaultRequeueRejected:false",
|
"spring.rabbitmq.listener.direct.defaultRequeueRejected:false",
|
||||||
|
"spring.rabbitmq.listener.direct.missingQueuesFatal:false",
|
||||||
"spring.rabbitmq.listener.direct.idleEventInterval:5")
|
"spring.rabbitmq.listener.direct.idleEventInterval:5")
|
||||||
.run((context) -> {
|
.run((context) -> {
|
||||||
DirectRabbitListenerContainerFactory rabbitListenerContainerFactory = context
|
DirectRabbitListenerContainerFactory rabbitListenerContainerFactory = context
|
||||||
|
@ -621,6 +623,7 @@ public class RabbitAutoConfigurationTests {
|
||||||
assertThat(dfa.getPropertyValue("prefetchCount")).isEqualTo(40);
|
assertThat(dfa.getPropertyValue("prefetchCount")).isEqualTo(40);
|
||||||
assertThat(dfa.getPropertyValue("messageConverter"))
|
assertThat(dfa.getPropertyValue("messageConverter"))
|
||||||
.isSameAs(context.getBean("myMessageConverter"));
|
.isSameAs(context.getBean("myMessageConverter"));
|
||||||
|
assertThat(dfa.getPropertyValue("missingQueuesFatal")).isEqualTo(false);
|
||||||
assertThat(dfa.getPropertyValue("defaultRequeueRejected"))
|
assertThat(dfa.getPropertyValue("defaultRequeueRejected"))
|
||||||
.isEqualTo(Boolean.FALSE);
|
.isEqualTo(Boolean.FALSE);
|
||||||
assertThat(dfa.getPropertyValue("idleEventInterval")).isEqualTo(5L);
|
assertThat(dfa.getPropertyValue("idleEventInterval")).isEqualTo(5L);
|
||||||
|
|
|
@ -1137,6 +1137,7 @@ content into your application. Rather, pick only the properties that you need.
|
||||||
spring.rabbitmq.listener.direct.consumers-per-queue= # Number of consumers per queue.
|
spring.rabbitmq.listener.direct.consumers-per-queue= # Number of consumers per queue.
|
||||||
spring.rabbitmq.listener.direct.default-requeue-rejected= # Whether rejected deliveries are re-queued by default.
|
spring.rabbitmq.listener.direct.default-requeue-rejected= # Whether rejected deliveries are re-queued by default.
|
||||||
spring.rabbitmq.listener.direct.idle-event-interval= # How often idle container events should be published.
|
spring.rabbitmq.listener.direct.idle-event-interval= # How often idle container events should be published.
|
||||||
|
spring.rabbitmq.listener.direct.missing-queues-fatal= # Whether the context should be ended up with failure if there are no any queues available on the broker.
|
||||||
spring.rabbitmq.listener.direct.prefetch= # Number of messages to be handled in a single request. It should be greater than or equal to the transaction size (if used).
|
spring.rabbitmq.listener.direct.prefetch= # Number of messages to be handled in a single request. It should be greater than or equal to the transaction size (if used).
|
||||||
spring.rabbitmq.listener.direct.retry.enabled=false # Whether publishing retries are enabled.
|
spring.rabbitmq.listener.direct.retry.enabled=false # Whether publishing retries are enabled.
|
||||||
spring.rabbitmq.listener.direct.retry.initial-interval=1000ms # Duration between the first and second attempt to deliver a message.
|
spring.rabbitmq.listener.direct.retry.initial-interval=1000ms # Duration between the first and second attempt to deliver a message.
|
||||||
|
@ -1150,6 +1151,7 @@ content into your application. Rather, pick only the properties that you need.
|
||||||
spring.rabbitmq.listener.simple.default-requeue-rejected= # Whether rejected deliveries are re-queued by default.
|
spring.rabbitmq.listener.simple.default-requeue-rejected= # Whether rejected deliveries are re-queued by default.
|
||||||
spring.rabbitmq.listener.simple.idle-event-interval= # How often idle container events should be published.
|
spring.rabbitmq.listener.simple.idle-event-interval= # How often idle container events should be published.
|
||||||
spring.rabbitmq.listener.simple.max-concurrency= # Maximum number of listener invoker threads.
|
spring.rabbitmq.listener.simple.max-concurrency= # Maximum number of listener invoker threads.
|
||||||
|
spring.rabbitmq.listener.simple.missing-queues-fatal= # Whether the context should be ended up with failure if there are no any queues available on the broker or the container should be stopped if queues have been removed while the container is running.
|
||||||
spring.rabbitmq.listener.simple.prefetch= # Number of messages to be handled in a single request. It should be greater than or equal to the transaction size (if used).
|
spring.rabbitmq.listener.simple.prefetch= # Number of messages to be handled in a single request. It should be greater than or equal to the transaction size (if used).
|
||||||
spring.rabbitmq.listener.simple.retry.enabled=false # Whether publishing retries are enabled.
|
spring.rabbitmq.listener.simple.retry.enabled=false # Whether publishing retries are enabled.
|
||||||
spring.rabbitmq.listener.simple.retry.initial-interval=1000ms # Duration between the first and second attempt to deliver a message.
|
spring.rabbitmq.listener.simple.retry.initial-interval=1000ms # Duration between the first and second attempt to deliver a message.
|
||||||
|
|
Loading…
Reference in New Issue