spring-integration - RecipientListRouter 执行顺序
问题描述
我已经在我的程序中成功使用了 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;
解决方案
是的,它们将在调用线程上按顺序执行,只要所有接收者目标通道都是同步的(没有队列通道、没有执行器通道、没有配置有执行器的发布-订阅通道)。
推荐阅读
- php - 将 HEADER 电子邮件更改为自定义电子邮件
- go - 使用 POSTMAN 在 FormValue Golang 中访问 POST 请求值
- c# - 返回 JSON 错误消息,IActionResult
- python - 无法将文件导入到 python 脚本并使用命令行参数将打印语句记录到另一个文件
- performance - Informatica BDE 摄取作业运行 10 多个小时,当被终止并重新运行时,在 3 小时内完成
- c# - 如何限制只上传图片?
- vue.js - 如何访问模板内输入中的文本?
- java - 数独求解器未正确求解
- java - @Bean 和 Spring 中的 Autowired 有什么区别?
- ajax - 在 laravel 5.7.14 中使用命名空间时出现此错误