Camel File 组件 - Idempotrepository 和 InProgressRepository 之间有什么区别

bra*_*mdc 2 file apache-camel idempotent

IdempotityRepository 和 InProgressRepository 之间到底有什么区别?我从文件组件页面有以下定义:

  • Idempotrepository:“使用幂等消费者 EIP 模式让 Camel 跳过已处理文件的选项”
  • InProgressRepository:“正在进行的存储库用于计算当前正在使用的正在进行的文件。”

对我来说,这些是相同的定义,只是措辞略有不同。它们还可以使用相同的幂等存储库。

所以我有点困惑,我需要两者吗?或者幂等存储库足够好吗?

hk6*_*279 5

在阅读以下信息之前,请确保您已阅读并理解幂等的概念。


IdempotRepository - 用于存储已处理文件的缓存的位置(即文件已被您的路由消耗和处理)。当您检查幂等功能时使用。

InProgressRepository - 用于存储当前正在进行的文件(即当前批次中要消耗的文件)的缓存的地方。始终供文件使用者使用。

IMO,通常总是需要 InProgressRepository 并使用默认设置(基于内存的存储库)。如果需要幂等,则可能需要 IdempotRepository并选择自己的设置(基于文件基于 JPA等)来防止应用程序重新启动。