Spring Integration Feed入站通道适配器重复条目

时间:2017-06-08 12:28:33

标签: spring-integration

我正在使用Spring Integration使用其入站通道适配器来使用RSS源,并将源写入数据库表。

为防止进程停止/启动时出现重复条目​​,我启用了PropertiesPersistingMetadataStore。作为辅助措施,在数据库表格中,我还在Feed ID / Feed条目链接列中有一个唯一约束。

这似乎工作正常,但我注意到一些重新启动(并非所有时间)我得到一些数据库异常错误,它试图再次插入相同的RSS提要项。

在什么条件下我会得到这些重复的错误,无论如何我可以绕过它们吗?

1 个答案:

答案 0 :(得分:0)

PropertiesPersistingMetadataStore仅在正常的应用程序关闭时保持其状态(当应用程序上下文为destroy()时)。

但是,它会实现Flushable,因此您可以在保留后在流中为其调用flush()

在db事务提交后提交表达式@metadataStore.flush()之后,您可以使用transaction synchronization刷新存储。

或者,您可以使用更强大的持久性存储,例如Redis,它会在每次更新时保留。