2

如果所有项目的 pubDate 相同,Mule 的 rss:feed-splitter 组件即使提要包含多个项目也仅返回单个项目。

在这种情况下,有什么办法可以拿到所有的物品吗?

4

2 回答 2

2

您面临的问题是由于FeedSplitter默认情况下依赖于EntryLastUpdatedFilter接受或拒绝提要条目。此过滤器基于更新时间,因此任何与已处理的另一个条目具有相同时间的条目都将被拒绝。

我还没有找到任何干净的方法来配置<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 条目都经过拆分过程。

于 2013-01-17T17:58:39.430 回答
1

根据rss 模块文档rss:feed-splitter

将提要的条目拆分为单个条目对象。每个条目将是 Mule 中的一条单独消息。

所以你正在经历的是预期的行为。

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

于 2013-01-12T11:35:43.197 回答