Spring Integration:有没有办法聚合来自" all"频道中的消息?

时间:2015-09-20 12:05:54

标签: spring-integration

我想编写一个批处理,每天从路径读取网站访问日志文件(csv文件),并使用spring集成进行一些分析。

这是输入csv文件的简化版本。

srcIp1,t1,path1
srcIp2,t2,path2
srcIp1,t3,path2
srcIp1,t4,path1

每个源ip和路径的访问号码将在一些过滤逻辑之后计算。

我创建了一个输入通道,其有效负载是已解析的日志行,并应用了一个过滤器,最后是一个聚合器来计算最终结果。 问题是什么应该是正确的组发布stragety,默认发布stragety(SequenceSizeReleaseStrategy)不起作用。

还有任何其他弹簧整合开箱即用

  

策略(ExpressionEvaluatingReleaseStrategy,   MessageCountReleaseStrategy,MethodInvokingReleaseStrategy,   SequenceSizeReleaseStrategy,TimeoutCountSequenceSizeReleaseStrategy)

似乎不符合我的需要。

或者Spring集成假设一个频道带有一个消息流,其中没有"消息结束的消息"并不是我的问题在这里suitalbe?

1 个答案:

答案 0 :(得分:0)

如果您有办法告诉小组何时完成,您可以编写自定义ReleaseStrategy。每次将消息添加到组中时都会参考。

或者,您可以使用group-timeout在没有消息到达的一段时间后释放部分群组。