首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何定制弹簧集成流

如何定制弹簧集成流
EN

Stack Overflow用户
提问于 2020-01-01 12:42:20
回答 1查看 294关注 0票数 2

我有个要求

来自FTP的later)

  • service

  • 文件被复制到本地目录,

  • 文件被拾取

  • 服务器1来解析和读取

  • 服务2以丰富XYZH 210H 111服务3以丰富CDYH 212H 113服务4以保存数据库中的数据并获得所生成的is集(如需要的话)基于服务4H 216H 117/code>服务6将消息发送到另一个系统H 218<>h 119/code>服务7将更新数据,然后将again

  • service 8更新为again

  • service 8。做一些事情

  • 将文件移回do目录

在这一点上,我正在考虑让一个流程来处理FTP端并获取文件并下载它。

flow # 02将选择该文件并执行上面解释的处理

我的问题是,我是否应该使用变压器以上所有这些步骤。另外,如果我和所有的变压器都有一个流量,或者我应该把它分解成子流,那还可以吗?

如果任何变压器抛出异常,它会忽略其余的变压器并进入错误通道吗?

另外,如果我设置了一个异常处理通道,我会知道异常是在哪个步骤抛出的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-02 14:30:28

如果您不熟悉许多其他Spring组件,比如Enricherhttps://docs.spring.io/spring-integration/reference/html/message-transformation.html#content-enricher和JPA通道适配器:https://docs.spring.io/spring-integration/reference/html/jpa.html#jpa,那么您真的可以使用转换器做任何事情。

您确实可以在单个流中完成所有操作,即使您将有几个应用程序实例。可以配置流的方式是,每个步骤都可以分发到整个集群中,以便进行均匀的计算。另一方面,我真的把我的流分成了几个逻辑单元。

如果有一步抛出异常,您确实不会再带着该消息继续下去了。这与普通Java程序的工作方式完全相同。

是的,从某些版本开始,我们将整个组件添加到异常消息中:

代码语言:javascript
复制
throw IntegrationUtils.wrapInHandlingExceptionIfNecessary(messageToUse,
                () -> "error occurred in message handler [" + this + "]", e);

注意this。它将使用bean名和配置源调用toString(),以确定在流程中发生错误的异常位置。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59552617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档