gpt4 book ai didi

java - Spring Integration - 转发原始消息并在处理后回复

转载 作者:行者123 更新时间:2023-11-29 05:50:04 25 4
gpt4 key购买 nike

在某些情况下,我希望 Spring Integration 组件(服务激活器)接收带有文件负载的消息,并生成一些输出。此外,一旦组件产生了这个输出,我想将原始文件消息传递到不同的 channel 。

用例是我有一些文件进入,被发送到两个并行处理流(存档到 S3,并解析内容)。感谢 Gary Russel,我在原始文件消息上使用了发布-订阅 channel 的 apply-sequence="true" 行为。当两个流都完成了一个文件时,它们应该将带有原始相关 header 的文件消息放到一个“已处理” channel 上,聚合器从那里对它们进行分组,当两个流都被聚合后,将它们放在一个 channel 上,该 channel 提供给一个服务激活器删除文件。

所以,总而言之,我想要一个服务激活器将其输出放在一个 channel 上,同时将它收到的原始消息放在另一个 channel 上。

更新

如果订阅者按照 order 属性指定的顺序串行执行,那么同步使用 publish-subscribe 会更好吗?

最佳答案

我使用了一个发布-订阅 channel ,没有一个指定的task-executor,然后下了一个命令每个订户的属性(property)。

第一个订阅者做它自己的事情,并发出它自己的不同输出(在我的例子中是解析的文件内容);我通过使用它下游的 ExecutorChannel 使它的后续部分异步。

第二个订阅者在第一个订阅者完成之前不会执行,并获得相同的输入消息(在本例中为文件)。我让第二个订阅者成为 Bridge,它将 File 推送到 channel ,这将导致“我已经完成的事情”处理管道准备好被删除。

关于java - Spring Integration - 转发原始消息并在处理后回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14256271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com