Fix execution thread for blocking and adjusts timing
* Fix execution thread for blocking DiscoveryClientServiceInstanceListSupplier. * Desynchronise HealthCheck and Cache. Add info about using HealthCheck without Cache to docs. See gh-760
This commit is contained in:
committed by
GitHub
parent
587f5f568a
commit
87e5d7a62b
@@ -39,7 +39,7 @@ public class LoadBalancerCacheProperties {
|
||||
* @see <a href=
|
||||
* "https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/convert/StringToDurationConverter.java">StringToDurationConverter.java</a>
|
||||
*/
|
||||
private Duration ttl = Duration.ofSeconds(30);
|
||||
private Duration ttl = Duration.ofSeconds(35);
|
||||
|
||||
/**
|
||||
* Initial cache capacity expressed as int.
|
||||
|
||||
@@ -47,8 +47,8 @@ public class DiscoveryClientServiceInstanceListSupplier
|
||||
Environment environment) {
|
||||
this.serviceId = environment.getProperty(PROPERTY_NAME);
|
||||
this.serviceInstances = Flux
|
||||
.defer(() -> Flux.fromIterable(delegate.getInstances(serviceId))
|
||||
.collectList().flux().subscribeOn(Schedulers.boundedElastic()));
|
||||
.defer(() -> Flux.just(delegate.getInstances(serviceId)))
|
||||
.subscribeOn(Schedulers.boundedElastic());
|
||||
}
|
||||
|
||||
public DiscoveryClientServiceInstanceListSupplier(ReactiveDiscoveryClient delegate,
|
||||
|
||||
@@ -109,21 +109,18 @@ class DiscoveryClientServiceInstanceListSupplierTests {
|
||||
|
||||
@Test
|
||||
void shouldUpdateReturnRetrievedInstancesBlockingClient() {
|
||||
when(discoveryClient.getInstances(SERVICE_ID)).thenReturn(
|
||||
Lists.list(instance("1host", false), instance("2host-secure", true)));
|
||||
supplier = new DiscoveryClientServiceInstanceListSupplier(discoveryClient,
|
||||
environment);
|
||||
StepVerifier.withVirtualTime(() -> {
|
||||
when(discoveryClient.getInstances(SERVICE_ID)).thenReturn(
|
||||
Lists.list(instance("1host", false), instance("2host-secure", true)));
|
||||
supplier = new DiscoveryClientServiceInstanceListSupplier(discoveryClient,
|
||||
environment);
|
||||
supplier.get();
|
||||
|
||||
StepVerifier.withVirtualTime(() -> supplier.get()).expectSubscription()
|
||||
.expectNext(Lists.list(instance("1host", false),
|
||||
instance("2host-secure", true)))
|
||||
.thenCancel().verify();
|
||||
|
||||
when(discoveryClient.getInstances(SERVICE_ID))
|
||||
.thenReturn(Lists.list(instance("1host", false),
|
||||
instance("2host-secure", true), instance("3host", false)));
|
||||
|
||||
StepVerifier.withVirtualTime(() -> supplier.get()).expectSubscription()
|
||||
when(discoveryClient.getInstances(SERVICE_ID))
|
||||
.thenReturn(Lists.list(instance("1host", false),
|
||||
instance("2host-secure", true), instance("3host", false)));
|
||||
return supplier.get();
|
||||
}).expectSubscription()
|
||||
.expectNext(Lists.list(instance("1host", false),
|
||||
instance("2host-secure", true), instance("3host", false)))
|
||||
.thenCancel().verify();
|
||||
|
||||
Reference in New Issue
Block a user