有什么方法可以使用Spring Cloud Function方法从主题中轮询消息?

问题描述

我们正在使用SubscribableChannelMessageChannelPollableMessageSource,并使用@EnableBinding@StreamListner进行配置。现在我们需要迁移到功能方法SubscribableChannelMessageChannel可以使用Consumer和supplier bean进行转换,但是我们无法迁移PollableMessageSource。 由于如果使用@EnableBinding会禁用功能,因此我们无法进行迁移。我们尝试研究@PollableBean,但似乎它仅适用于具有有限流的Reactive supplier。有什么办法吗? 参考:https://cloud.spring.io/spring-cloud-stream/reference/html/spring-cloud-stream.html

解决方法

您可以将一个函数和一个PollableMessageSource包装在一个bean中,并使用@EnableBinding绑定到它,而不是绑定到该函数。有关示例,请参见https://github.com/spring-cloud/stream-applications/blob/master/applications/sink/tasklauncher-sink/src/main/java/org/springframework/cloud/stream/app/tasklauncher/sink/TaskLauncherSinkConfiguration.java