从包含多个文件的sftp入站消息源中聚合一条消息的最佳解决方案是什么? 我们在远程计算机上有3个需要接收的文件。之后,我们将这些文件的内容合并为一条json消息,然后将其转发。
public IntegrationFlow sftpIntegrationFlowBean() {
final Map<String, Object> headers = new HashMap<>();
headers.put("sftpFile", "sftpFile");
final Consumer<AggregatorSpec> aggregator = t -> {
t.sendPartialResultOnExpiry(true);
t.expireGroupsUponCompletion(true);
t.processor(new CustomMessageAggregator());
};
return IntegrationFlows
.from(sftpInboundMessageSource(),
e -> e.id("sftpIntegrationFlow").poller(pollerMetadataSftp))
.enrichHeaders(headers).aggregate(aggregator)
.handle(customMessageSender).get();
}
轮询每15分钟轮询一次。 运行此代码时,会发生以下事情:
如何一次完成所有操作而没有延迟?我确实使用FileReadingMessageSource尝试了此操作,但结果相同。
谢谢。
答案 0 :(得分:0)
在maxMessagesPerPoll
中增加PollerMetadata
。