我想设置这样的集成流程:
return IntegrationFlows
.from("inputChannel")
.split(fileSplitter)
.handle(this::doStuff1)
.handle(this::doStuff2)
.handle(this::doStuff3)
.aggregate()
.handle(this::deleteFile)
文件分割器:
@Bean
public FileSplitter fileSplitter() {
FileSplitter fileSplitter = new FileSplitter(true, true);
fileSplitter.setCharset(StandardCharsets.UTF_8);
fileSplitter.setApplySequence(true);
return fileSplitter;
}
输入的类型为File
。文件大小很大,所以我想逐行流式传输内容,处理它们并在最后删除文件。问题是现在我必须检查并忽略链上所有处理程序方法中的文件 SOF、EOF 标记有效负载。有没有不同的方法而不检查每个 doStuff 方法中的类型? (我认为建议可能有用,但还没有尝试过)
You can .filter()
标记,.route()
他们到不同的渠道或.transform()
例如,它们是一个空字符串。
.filter()
在您的情况下可能是最简单的,带有一个“智能”过滤器,它还会删除结束标记上的文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)