如果所有Feed项的pubDate相同,则Mule RSS FeedSplitter仅返回一个结果

时间:2013-01-12 09:18:56

标签: rss mule

如果所有项目的pubDate相同,即使Feed有多个项目,Mule的rss:feed-splitter组件也只返回一个项目。

在这种情况下,有没有办法获得所有物品?

2 个答案:

答案 0 :(得分:2)

您遇到的问题是由于FeedSplitter默认依赖于EntryLastUpdatedFilter来接受或拒绝Feed条目。此过滤器基于更新时间,因此任何与已处理的其他条目具有相同时间的条目将被拒绝。

我没有找到任何干净的方法来配置<rss:feed-splitter>元素以接受所有RSS条目,因此我必须将其实例化为自定义过滤器才能配置它,如下所示:

<custom-splitter class="org.mule.module.rss.routing.FeedSplitter">
    <spring:property name="entryFilter">
        <spring:bean class="org.mule.routing.filters.AcceptAllFilter" />
    </spring:property>
</custom-splitter>

这使得所有RSS条目都可以完成拆分过程。

答案 1 :(得分:1)

根据rss module documentation rss:feed-splitter

  

将Feed的条目拆分为单个条目对象。每个条目都是Mule中的单独消息。

所以您遇到的是预期的行为。

您可以做的是编写基于pubDate聚合的自定义聚合器,以便传播到下一个消息处理器的消息将是包含具有相同pubDate的所有消息的mule消息集合