我正在使用FileSplitter逐行读取文件,然后过滤掉一些损坏的行 - 以丢弃一些行 - 以便为每行进行webservices调用。
除此之外我还需要做的是将文件移动到已完成的文件目录。
更新:为了更清楚,过滤后的成功/良好行将需要聚合在一个文件中以写入已完成的目录,并且已损坏/已过滤的行将被写入另一个。
提到上述内容,我不清楚以下几点:
该场景看起来像:
FileSplitter -> line Filter -> Outbound Gateway (webservices) -> Aggregator
答案 0 :(得分:0)
可以将FileSplitter
配置为发出FileSplitter.FileMarker
作为第一条消息FileSplitter.FileMarker.Mark.START
,最后发布FileSplitter.FileMarker.Mark.END
。
您可以在拆分器之后添加路由器(PayloadTypeRouter
应该足够)以处理不同流中的FileSplitter.FileMarker
。如果它是FileSplitter.FileMarker.Mark.END
,您只需执行所需的逻辑即可移至已完成的目录。
我认为您不需要这种情况的聚合器。
无论如何,可以使用FileSplitter
配置setApplySequence(true)
,以便能够关联聚合器中的下游组。但是你仍然无法知道该组的大小以及时发布它。 FileSplitter.FileMarker.Mark.END
在这里仍然有用,虽然我没有看到你的任务的原因。
Reference Manual中有关于此事的一些信息。