如何在 spring 集成提要中删除具有多个 RSS 提要源的重复消息
How to remove duplicate messages with multiple rss feed sources in spring integration feed
如何在 spring 集成提要中删除具有多个 rss 提要源的重复消息,如 FeedEntryMessageSource 与共享 MetadataStore 所做的那样。
我在 https://github.com/okihouse/spring-integration-rss-multiple-urls 中遵循了这个例子,对于多个 url,现在我想从每个来源中删除重复的消息。我怎样才能做到这一点?
我认为你应该看一下 Idempotent Receiver 模式。
并且在拆分所有 List<SyndFeed>
之后,您应该检查您之前是否没有处理过该条目。我的意思是 splitter
之后的下一个端点应该标记为 IdempotentReceiverInterceptor
.
编辑
@Bean
@Splitter(inputChannel = "splitterChannel")
public MessageHandler splitter() {
DefaultMessageSplitter defaultMessageSplitter = new DefaultMessageSplitter();
defaultMessageSplitter.setOutputChannelName("serviceChannel");
return defaultMessageSplitter;
}
@Bean
public IdempotentReceiverInterceptor idempotentReceiverInterceptor() {
return new IdempotentReceiverInterceptor(new MetadataStoreSelector(...));
}
@ServiceActivator(inputChannel = "serviceChannel")
@IdempotentReceiver("idempotentReceiverInterceptor")
public void processFeed(SyndFeed feed) {
...
}
如何在 spring 集成提要中删除具有多个 rss 提要源的重复消息,如 FeedEntryMessageSource 与共享 MetadataStore 所做的那样。
我在 https://github.com/okihouse/spring-integration-rss-multiple-urls 中遵循了这个例子,对于多个 url,现在我想从每个来源中删除重复的消息。我怎样才能做到这一点?
我认为你应该看一下 Idempotent Receiver 模式。
并且在拆分所有 List<SyndFeed>
之后,您应该检查您之前是否没有处理过该条目。我的意思是 splitter
之后的下一个端点应该标记为 IdempotentReceiverInterceptor
.
编辑
@Bean
@Splitter(inputChannel = "splitterChannel")
public MessageHandler splitter() {
DefaultMessageSplitter defaultMessageSplitter = new DefaultMessageSplitter();
defaultMessageSplitter.setOutputChannelName("serviceChannel");
return defaultMessageSplitter;
}
@Bean
public IdempotentReceiverInterceptor idempotentReceiverInterceptor() {
return new IdempotentReceiverInterceptor(new MetadataStoreSelector(...));
}
@ServiceActivator(inputChannel = "serviceChannel")
@IdempotentReceiver("idempotentReceiverInterceptor")
public void processFeed(SyndFeed feed) {
...
}