RecipientListRouter的执行顺序

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

我已在程序中成功使用RecipientListRouter,根据该值我将其发送到多个通道。

我想知道-1.这样可以保持执行顺序,例如,在以下情况下,我们收到一个事件,该事件将由channelChkn和channelDeboard进行处理。因此,首先该事件将由channelChkn处理,然后由channelDeboard

  1. 是在不同线程中还是在同一发送者线程中执行
        RecipientListRouter router = new RecipientListRouter();
        router.setIgnoreSendFailures(true);
        router.setApplySequence(true);
        router.addRecipient("channelChkn","headers.get('eventSubType').contains('CHKN')");
        router.addRecipient("channelBkd","headers.get('eventSubType').contains('BKD')");
        router.addRecipient("channelBrd","headers.get('eventSubType').contains('BRD')");
        router.addRecipient("channelDeboard","headers.get('isDeBoarded') == true");
        router.setDefaultOutputChannelName(IntegrationContextUtils.NULL_CHANNEL_BEAN_NAME);
        LOGGER.info("********************* RecipientListRouter *********************"+router.getRecipients());
        return router;

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

是的,只要所有接收方目标通道都是同步的(没有队列通道,没有执行者通道,没有配置有执行者的发布-订阅通道,它们就会在调用线程上按顺序执行)。>>

© www.soinside.com 2019 - 2024. All rights reserved.