213.8.3. 恢复
LevelDBAggregationRepository
默认恢复任何失败的交换。它通过执行在持久性存储中扫描故障 Exchange 的后台任务来实现此目的。您可以使用 checkInterval
选项设置此任务运行的频率。恢复工作是确保 Camel 尝试恢复和重做失败的交换的事务。任何发现的交换将从持久性存储中恢复,并再次重新提交。
当 Exchange 被恢复/redelivered时,会设置以下标头:
标头 | 类型 | 描述 |
---|---|---|
| 布尔值 | 设置为 true 以指示 Exchange 处于红色状态。 |
| 整数 | 从 1 开始重新发送尝试。 |
只有当成功处理 Exchange 时,它才会标记为完成,当 确认
方法在 AggregationRepository
上调用时,才会将其标记为完成。这意味着,如果同一交换再次失败,它将被重试,直到成功为止。
您可以使用选项 maximumRedeliveries
来限制给定恢复的 Exchange 的最大重新传送尝试次数。您还必须设置 deadLetterUri
选项,因此 Camel 知道在点击 的最大值时要发送交换
的位置。
您可以在 camel-leveldb 的单元测试中看到一些示例,例如: https://svn.apache.org/repos/asf/camel/trunk/components/camel-leveldb/src/test/java/org/apache/camel/component/leveldb/LevelDBAggregateRecoverTest.java
213.8.3.1. 在 Java DSL 中使用 LevelDBAggregationRepository
在这个示例中,我们希望在 target/data/leveldb.dat
文件中持续聚合的信息。