228.9. 启用持久跟踪

要启用此功能,在端点 URI 中至少设置以下选项:

  • persistentTailTracking 选项为 true
  • persistentId 选项针对这个消费者的唯一标识符,以便可以在许多用户间重复使用相同的集合

另外,您还可以将 tailTrackDbtailTrackCollectiontailTrackField 选项设置为保存运行时信息的自定义。有关每个选项的描述,请参考本页顶部的端点选项表。

例如,以下路由会使用 "flights.cancellations" 容量收集,使用 "departureTime" 作为 increasing 字段,默认的重新生成光标延迟为 1000ms,并打开持久跟踪,并保留在 "flights.camelTailTracking" 的"cancellationsTracker" id 下。 在 "lastTrackingValue" 字段中存储最后处理的值(camelTailTrackinglastTrackingValue 都是默认值)。

from("mongodb3:myDb?database=flights&collection=cancellations&tailTrackIncreasingField=departureTime&persistentTailTracking=true" +
     "&persistentId=cancellationsTracker")
    .id("tailableCursorConsumer2")
    .autoStartup(false)
    .to("mock:test");

以下是与以上地址相同的另一个示例,但永久跟踪运行时信息将存储在 "trackers.camelTrackers" 集合中,在"lastProcessedDepartureTime"字段中:

from("mongodb3:myDb?database=flights&collection=cancellations&tailTrackIncreasingField=departureTime&persistentTailTracking=true" +
     "&persistentId=cancellationsTracker&tailTrackDb=trackers&tailTrackCollection=camelTrackers" +
     "&tailTrackField=lastProcessedDepartureTime")
    .id("tailableCursorConsumer3")
    .autoStartup(false)
    .to("mock:test");