Mule の rss:feed-splitter コンポーネントは、フィードに複数のアイテムがある場合でも、すべてのアイテムの pubDate が同じであれば、単一のアイテムのみを返します。
このような場合、すべてのアイテムを取得する方法はありますか?
あなたが直面している問題は、デフォルトでがフィード エントリの受け入れまたは拒否を にFeedSplitter
依存しているという事実によるものです。EntryLastUpdatedFilter
このフィルタは更新時間に基づいているため、すでに処理された別のエントリと同じ時間のエントリは拒否されます。
すべての RSS エントリを受け入れるように要素を構成するクリーンな方法が見つからなかった<rss:feed-splitter>
ため、以下に示すように、構成できるようにカスタム フィルターとしてインスタンス化する必要がありました。
<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 エントリが分割プロセスを通過します。
rss モジュールのドキュメントによると、rss:feed-splitter
フィードのエントリを単一のエントリ オブジェクトに分割します。Mule では、各エントリが個別のメッセージになります。
したがって、あなたが経験しているのは予想される動作です。
できることは、pubDate に基づいて集約するカスタム アグリゲーターをコーディングして、次のメッセージ プロセッサに伝達されるメッセージが同じ pubDate を持つすべてのメッセージを含むミュール メッセージ コレクションになるようにすることです。