Я пытаюсь использовать несколько сообщений из разных тем PubSub в одном приложении. Один из них опрашивается, остальные должны иметь функциональные привязки. Мои функциональные потребители не работают.
@Bean
public Consumer<MessageA> messageAMessageHandler() {
return message -> { ... }
}
@Scheduled(initialDelay = 60 * 1000, fixedRate = 600 * 1000)
public void pollBMessages() {
this.bMessageSource.b().poll(m -> { ... }, new ParameterizedTypeReference<MessageB>() {
});
}
My application.yml:
spring:
cloud:
stream:
pubsub:
default:
consumer:
auto-create-resources: true
gcp:
pubsub:
bindings:
message-a-input:
consumer:
ack-mode: manual
bindings:
messageAMessageHandler-in-0:
destination: message-b-topic
group: my-service
message-a-input:
destination: message-a-topic
group: my-service
function:
definition: messageAMessageHandler;messageCMessageHandler
Опрос MessageSource на основе аннотаций работает хорошо, но функциональные привязки не поддерживаются. В контексте моего приложения это Beans, но облачный поток или gcp pubsub игнорирует их. подписки не создаются и сообщения не используются.
Что мне не хватает?