Merge pull request #23564 from jkhoward
* pr/23564: Polish "Add configuration option for channelRpcTimeout" Add configuration option for channelRpcTimeout Closes gh-23564
This commit is contained in:
commit
2ab2cf061f
|
|
@ -149,6 +149,8 @@ public class RabbitAutoConfiguration {
|
||||||
}
|
}
|
||||||
map.from(properties::getConnectionTimeout).whenNonNull().asInt(Duration::toMillis)
|
map.from(properties::getConnectionTimeout).whenNonNull().asInt(Duration::toMillis)
|
||||||
.to(factory::setConnectionTimeout);
|
.to(factory::setConnectionTimeout);
|
||||||
|
map.from(properties::getChannelRpcTimeout).whenNonNull().asInt(Duration::toMillis)
|
||||||
|
.to(factory::setChannelRpcTimeout);
|
||||||
map.from(credentialsProvider::getIfUnique).whenNonNull().to(factory::setCredentialsProvider);
|
map.from(credentialsProvider::getIfUnique).whenNonNull().to(factory::setCredentialsProvider);
|
||||||
map.from(credentialsRefreshService::getIfUnique).whenNonNull().to(factory::setCredentialsRefreshService);
|
map.from(credentialsRefreshService::getIfUnique).whenNonNull().to(factory::setCredentialsRefreshService);
|
||||||
factory.afterPropertiesSet();
|
factory.afterPropertiesSet();
|
||||||
|
|
|
||||||
|
|
@ -120,6 +120,11 @@ public class RabbitProperties {
|
||||||
*/
|
*/
|
||||||
private Duration connectionTimeout;
|
private Duration connectionTimeout;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Continuation timeout for RPC calls in channels. Set it to zero to wait forever.
|
||||||
|
*/
|
||||||
|
private Duration channelRpcTimeout = Duration.ofMinutes(10);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cache configuration.
|
* Cache configuration.
|
||||||
*/
|
*/
|
||||||
|
|
@ -336,6 +341,14 @@ public class RabbitProperties {
|
||||||
this.connectionTimeout = connectionTimeout;
|
this.connectionTimeout = connectionTimeout;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Duration getChannelRpcTimeout() {
|
||||||
|
return this.channelRpcTimeout;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChannelRpcTimeout(Duration channelRpcTimeout) {
|
||||||
|
this.channelRpcTimeout = channelRpcTimeout;
|
||||||
|
}
|
||||||
|
|
||||||
public Cache getCache() {
|
public Cache getCache() {
|
||||||
return this.cache;
|
return this.cache;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -108,6 +108,8 @@ class RabbitAutoConfigurationTests {
|
||||||
.isEqualTo(com.rabbitmq.client.ConnectionFactory.DEFAULT_CHANNEL_MAX);
|
.isEqualTo(com.rabbitmq.client.ConnectionFactory.DEFAULT_CHANNEL_MAX);
|
||||||
assertThat(connectionFactory.isPublisherConfirms()).isFalse();
|
assertThat(connectionFactory.isPublisherConfirms()).isFalse();
|
||||||
assertThat(connectionFactory.isPublisherReturns()).isFalse();
|
assertThat(connectionFactory.isPublisherReturns()).isFalse();
|
||||||
|
assertThat(connectionFactory.getRabbitConnectionFactory().getChannelRpcTimeout())
|
||||||
|
.isEqualTo(com.rabbitmq.client.ConnectionFactory.DEFAULT_CHANNEL_RPC_TIMEOUT);
|
||||||
assertThat(context.containsBean("rabbitListenerContainerFactory"))
|
assertThat(context.containsBean("rabbitListenerContainerFactory"))
|
||||||
.as("Listener container factory should be created by default").isTrue();
|
.as("Listener container factory should be created by default").isTrue();
|
||||||
});
|
});
|
||||||
|
|
@ -140,7 +142,7 @@ class RabbitAutoConfigurationTests {
|
||||||
.withPropertyValues("spring.rabbitmq.host:remote-server", "spring.rabbitmq.port:9000",
|
.withPropertyValues("spring.rabbitmq.host:remote-server", "spring.rabbitmq.port:9000",
|
||||||
"spring.rabbitmq.address-shuffle-mode=random", "spring.rabbitmq.username:alice",
|
"spring.rabbitmq.address-shuffle-mode=random", "spring.rabbitmq.username:alice",
|
||||||
"spring.rabbitmq.password:secret", "spring.rabbitmq.virtual_host:/vhost",
|
"spring.rabbitmq.password:secret", "spring.rabbitmq.virtual_host:/vhost",
|
||||||
"spring.rabbitmq.connection-timeout:123")
|
"spring.rabbitmq.connection-timeout:123", "spring.rabbitmq.channel-rpc-timeout:140")
|
||||||
.run((context) -> {
|
.run((context) -> {
|
||||||
CachingConnectionFactory connectionFactory = context.getBean(CachingConnectionFactory.class);
|
CachingConnectionFactory connectionFactory = context.getBean(CachingConnectionFactory.class);
|
||||||
assertThat(connectionFactory.getHost()).isEqualTo("remote-server");
|
assertThat(connectionFactory.getHost()).isEqualTo("remote-server");
|
||||||
|
|
@ -150,6 +152,7 @@ class RabbitAutoConfigurationTests {
|
||||||
assertThat(connectionFactory.getVirtualHost()).isEqualTo("/vhost");
|
assertThat(connectionFactory.getVirtualHost()).isEqualTo("/vhost");
|
||||||
com.rabbitmq.client.ConnectionFactory rcf = connectionFactory.getRabbitConnectionFactory();
|
com.rabbitmq.client.ConnectionFactory rcf = connectionFactory.getRabbitConnectionFactory();
|
||||||
assertThat(rcf.getConnectionTimeout()).isEqualTo(123);
|
assertThat(rcf.getConnectionTimeout()).isEqualTo(123);
|
||||||
|
assertThat(rcf.getChannelRpcTimeout()).isEqualTo(140);
|
||||||
assertThat((List<Address>) ReflectionTestUtils.getField(connectionFactory, "addresses")).hasSize(1);
|
assertThat((List<Address>) ReflectionTestUtils.getField(connectionFactory, "addresses")).hasSize(1);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue