Skip to content

Commit a18785b

Browse files
committed
Fixing CI
1 parent c761b8f commit a18785b

File tree

2 files changed

+14
-20
lines changed

2 files changed

+14
-20
lines changed

services-discovery/src/main/java/io/scalecube/services/discovery/ScalecubeServiceDiscovery.java

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,31 +33,25 @@
3333
import org.slf4j.Logger;
3434
import org.slf4j.LoggerFactory;
3535
import reactor.core.Exceptions;
36-
import reactor.core.publisher.DirectProcessor;
3736
import reactor.core.publisher.Flux;
38-
import reactor.core.publisher.FluxSink;
3937
import reactor.core.publisher.Mono;
40-
import reactor.core.publisher.Operators;
4138
import reactor.core.publisher.SignalType;
39+
import reactor.core.publisher.Sinks;
4240
import reactor.core.publisher.Sinks.EmitFailureHandler;
4341
import reactor.core.publisher.Sinks.EmitResult;
4442

4543
public final class ScalecubeServiceDiscovery implements ServiceDiscovery {
4644

4745
private static final Logger LOGGER = LoggerFactory.getLogger(ServiceDiscovery.class);
4846

49-
static {
50-
Operators.enableOnDiscard(null, o -> LOGGER.warn("[onDiscard] element = {}", o));
51-
}
52-
5347
private final ServiceEndpoint serviceEndpoint;
5448

5549
private ClusterConfig clusterConfig;
5650
private Cluster cluster;
5751

5852
// Sink
59-
private final DirectProcessor<ServiceDiscoveryEvent> subject = DirectProcessor.create();
60-
private final FluxSink<ServiceDiscoveryEvent> sink = subject.sink();
53+
private final Sinks.Many<ServiceDiscoveryEvent> sink =
54+
Sinks.many().multicast().directBestEffort();
6155

6256
/**
6357
* Constructor.
@@ -171,19 +165,21 @@ public void onMembershipEvent(MembershipEvent event) {
171165

172166
@Override
173167
public Flux<ServiceDiscoveryEvent> listen() {
174-
return subject.onBackpressureBuffer();
168+
return sink.asFlux().onBackpressureBuffer();
175169
}
176170

177171
@Override
178172
public Mono<Void> shutdown() {
179173
return Mono.defer(
180174
() -> {
181175
if (cluster == null) {
182-
sink.complete();
176+
sink.emitComplete(RetryEmitFailureHandler.INSTANCE);
183177
return Mono.empty();
184178
}
185179
cluster.shutdown();
186-
return cluster.onShutdown().doFinally(s -> sink.complete());
180+
return cluster
181+
.onShutdown()
182+
.doFinally(s -> sink.emitComplete(RetryEmitFailureHandler.INSTANCE));
187183
});
188184
}
189185

@@ -200,7 +196,7 @@ private void onMembershipEvent(MembershipEvent membershipEvent) {
200196

201197
if (discoveryEvent != null) {
202198
LOGGER.debug("Publish discoveryEvent: {}", discoveryEvent);
203-
sink.next(discoveryEvent);
199+
sink.emitNext(discoveryEvent, RetryEmitFailureHandler.INSTANCE);
204200
}
205201
}
206202

@@ -300,7 +296,6 @@ private static class RetryEmitFailureHandler implements EmitFailureHandler {
300296

301297
@Override
302298
public boolean onEmitFailure(SignalType signalType, EmitResult emitResult) {
303-
LOGGER.warn("[onEmitFailure] signalType={}, emitResult={}", signalType, emitResult);
304299
return emitResult == FAIL_NON_SERIALIZED;
305300
}
306301
}

services/src/main/java/io/scalecube/services/Microservices.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,7 @@
5757
import reactor.core.Disposable;
5858
import reactor.core.Disposables;
5959
import reactor.core.Exceptions;
60-
import reactor.core.publisher.DirectProcessor;
6160
import reactor.core.publisher.Flux;
62-
import reactor.core.publisher.FluxSink;
6361
import reactor.core.publisher.Mono;
6462
import reactor.core.publisher.SignalType;
6563
import reactor.core.publisher.Sinks;
@@ -558,8 +556,8 @@ private static class CompositeServiceDiscovery implements ServiceDiscovery {
558556
new ConcurrentHashMap<>();
559557

560558
// Subject
561-
private final DirectProcessor<ServiceDiscoveryEvent> subject = DirectProcessor.create();
562-
private final FluxSink<ServiceDiscoveryEvent> sink = subject.sink();
559+
private final Sinks.Many<ServiceDiscoveryEvent> sink =
560+
Sinks.many().multicast().directBestEffort();
563561

564562
private final Disposable.Composite disposables = Disposables.composite();
565563
private Scheduler scheduler;
@@ -616,7 +614,7 @@ private Mono<Void> startListen() {
616614
public Flux<ServiceDiscoveryEvent> listen() {
617615
return Flux.fromStream(microservices.serviceRegistry.listServiceEndpoints().stream())
618616
.map(ServiceDiscoveryEvent::newEndpointAdded)
619-
.concatWith(subject)
617+
.concatWith(sink.asFlux().onBackpressureBuffer())
620618
.subscribeOn(scheduler)
621619
.publishOn(scheduler);
622620
}
@@ -652,7 +650,7 @@ private Mono<? extends Void> start0(String id, ServiceDiscovery discovery) {
652650
.subscribeOn(scheduler)
653651
.publishOn(scheduler)
654652
.doOnNext(event -> onDiscoveryEvent(microservices, event))
655-
.doOnNext(sink::next)
653+
.doOnNext(event -> sink.emitNext(event, RetryEmitFailureHandler.INSTANCE))
656654
.subscribe());
657655

658656
return Mono.deferContextual(context -> discovery.start())
@@ -676,6 +674,7 @@ public Mono<Void> shutdown() {
676674
return Mono.defer(
677675
() -> {
678676
disposables.dispose();
677+
sink.emitComplete(RetryEmitFailureHandler.INSTANCE);
679678
return Mono.whenDelayError(
680679
discoveryInstances.values().stream()
681680
.map(ServiceDiscovery::shutdown)

0 commit comments

Comments
 (0)