如果所有项目的pubDate相同,即使Feed有多个项目,Mule的rss:feed-splitter组件也只返回一个项目。
在这种情况下,有没有办法获得所有物品?
答案 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消息集合