From 280fa5794c475b8e58fa2e431a170273f916b3a2 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Fri, 22 Sep 2017 09:45:37 +0100 Subject: [PATCH] Subscribe to supplier flux in background thread Stops application from blowing up if there are messages available on startup and the broker is not there. There are still errors (failed messages), but it doesn't stop the app from starting. Maybe should be optional to fail fast? --- .../cloud/function/stream/SupplierInvokingMessageProducer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-cloud-function-stream/src/main/java/org/springframework/cloud/function/stream/SupplierInvokingMessageProducer.java b/spring-cloud-function-stream/src/main/java/org/springframework/cloud/function/stream/SupplierInvokingMessageProducer.java index 2dc26286c..36b321af9 100644 --- a/spring-cloud-function-stream/src/main/java/org/springframework/cloud/function/stream/SupplierInvokingMessageProducer.java +++ b/spring-cloud-function-stream/src/main/java/org/springframework/cloud/function/stream/SupplierInvokingMessageProducer.java @@ -26,6 +26,7 @@ import org.springframework.messaging.support.MessageBuilder; import org.springframework.util.Assert; import reactor.core.publisher.Flux; +import reactor.core.scheduler.Schedulers; /** * @author Mark Fisher @@ -41,7 +42,7 @@ public class SupplierInvokingMessageProducer extends MessageProducerSupport { @Override protected void doStart() { - supplier().subscribe(m -> this.sendMessage(m)); + supplier().subscribeOn(Schedulers.elastic()).subscribe(m -> this.sendMessage(m)); } private Flux> supplier() {