private IntegrationFlow promoChannelSubscriber(File generatedDir, GenericSelector storesFilter) {
return IntegrationFlows
.from("promo")
.filter(storesFilter)
.split(
Files.splitter()
.applySequence(true)
)
.transform(this::enrichXstoreFileHeader)
.handle(
Files.outboundAdapter(generatedDir)
.autoCreateDirectory(true)
.fileExistsMode(APPEND)
.appendNewLine(true)
)
.get();
}
private IntegrationFlow movePromotions(File generatedDir, Path destinationDirectory) {
return IntegrationFlows.from(
Files.inboundAdapter(generatedDir, comparingLong(File::lastModified))
.regexFilter(fileNamePattern),
cas -> cas.poller(
Pollers.fixedDelay(2, TimeUnit.SECONDS)
.maxMessagesPerPoll(promoConfig.getMaxMessagesPerPoll())
.errorChannel(errorChannelName)
))
.handle(
Files.outboundAdapter(destinationDirectory.toFile())
.deleteSourceFiles(true)
.temporaryFileSuffix(".tmp")
)
.get();
}
为什么使用2个流?为什么不在接收到最后一个分裂时执行第二个流呢?
如果必须使用2个流,则需要写入与第二个流的筛选器不匹配的临时文件名。
然后,当文件完成后,将文件重命名为其最终名称。
目前,我正在与spring integration合作开发新的应用程序,并启动了poc,以了解如何处理故障案例。在我的应用程序中,spring integration将接收来自IBM mq的消息,并根据消息类型验证头信息和到不同队列的路由。传入的消息可能是批量消息,所以我使用了spring integration的拆分器和聚合器,并且对技术工作流程有很好的进展和控制。目前我面临的问题很少,我们有I
我正在开发一个Spring集成应用程序。 我有一个入站通道适配器,用于读取目录,然后是一个拆分器,用于将文件拆分为行,最后是一个udp出站通道适配器,用于发送行 我想每秒钟发一封信 我可以通过定义自己的拆分器并在每次读取一行时等待1s来做到这一点,但我想知道是否可以在xml文件中尽可能简单地完成它。 提前谢谢
使用Spring Integr中的拆分器,我拆分了从数据库中的表中选择的数据行。每条消息完成处理后,我想像旧消息一样将每条消息聚合到一条消息中。我该怎么办?我不知道拆分器拆分了多少条消息。我只知道拆分消息头中的相关ID。即使我聚合消息,我也无法制定发布策略。 我如何解决这个问题? 以及是否有任何方法可以使用jdbc-out站网关或jdbc-out站通道适配器一次插入多行数据,而无需使用拆分器插入每
我有以下XML负载,我正试图将其用于Spring集成和Spring集成AMQP: 我正在使用xpath拆分器拆分消息: 我工作正常,消息被分成3条新消息,例如使用此有效负载: 在此步骤之后,将使用此设置聚合消息: 作为最后一步,消息将使用此出站通道适配器发送到交换机: 不幸的是,出现了一些问题,因为我最终得到了这样的有效载荷。我需要它保持XML格式。
我只有一个具有大xml文件最后顺序的文件,而不是许多小xml文件。你能告诉我出了什么问题吗?太感谢你们了!
我正在尝试做一个GroupBy基于共享ID的GeoJSON功能列表,以便通过使用拆分/聚合来聚合这些功能的单个字段,如下所示: 除非我取消对这三行的注释,否则聚合器永远不会发布组,数据库也不会收到任何更新。如果我将groupTimeout设置为小于5秒,则会丢失部分结果。 我预计发布策略默认为,我预计在处理完所有(拆分)功能后会自动释放所有组(REST服务消息中总共只有129个功能)。手动将其设置