Spring Integration DSL:基于消息有效载荷将消息发送到多个订户(不是所有订户)

问题描述 投票:0回答:1

我必须创建一个管道来向多个订阅者发送消息,我可以使用publishSubscribeChannel实现这一点。

但是对于我来说,当我收到消息时-我有一个eventSubType,如

<ns1:eventSubType>0:INIT-SHIP-ASSIGN,BKD,</ns1:eventSubType>

我必须检查eventSubType是否包含INIT-SHIP-ASSIGN,然后将其路由到“ INIT-SHIP-ASSIGN”通道,如果它的“ BKD”,则必须将其路由到“ Booked”通道。同样,我们还有其他eventSubTypes。

我的挑战是-我有5个不同的子类型,在每封邮件中我们可以有多个子类型。因此,基于消息中可用的事件子类型(可以超过1个),我们必须将消息发送给多个订阅者,而不是发送给所有订阅者。

请建议

spring-integration spring-integration-dsl
1个回答
0
投票

改为使用recipient list router

.routeToRecipients(r -> r
        .recipient("thing1-channel", "'thing1' == payload")
        .recipientMessageSelector("thing2-channel", m ->
                m.getHeaders().containsKey("recipient")
                        && (boolean) m.getHeaders().get("recipient"))
        ...
© www.soinside.com 2019 - 2024. All rights reserved.