我已在程序中成功使用RecipientListRouter,根据该值我将其发送到多个通道。
我想知道-1.这样可以保持执行顺序,例如,在以下情况下,我们收到一个事件,该事件将由channelChkn和channelDeboard进行处理。因此,首先该事件将由channelChkn处理,然后由channelDeboard
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;
是的,只要所有接收方目标通道都是同步的(没有队列通道,没有执行者通道,没有配置有执行者的发布-订阅通道,它们就会在调用线程上按顺序执行)。>>