216.9. 永続的なテールトラッキングの有効化
この機能を有効にするには、少なくともエンドポイント URI に以下のオプションを設定します。
-
persistentTailTrackingオプションをtrueに指定 -
このコンシューマーの一意の識別子への
persistentIdオプション。これにより、同じコレクションを多くのコンシューマーで再利用できます。
さらに、tailTrackDb オプション、tailTrackCollection オプション、および tailTrackField オプションを、ランタイム情報が保存されるカスタム化に設定できます。各オプションの説明は、このページの上部にあるエンドポイントオプションの表を参照してください。
たとえば、以下のルートは「flights.cancellations」の上限付きコレクションから消費します。「departureTime」を増加フィールドとして使用し、デフォルトの再生成カーソル遅延である 1000ms を使用し、永続的なテールトラッキングが有効になっている状態で、「flights.camelTailTracking」の「cancellationsTracker」 ID の下に保持されます。 最後に処理された値を「lastTrackingValue」フィールドに格納(camelTailTracking および lastTrackingValue はデフォルト)。
from("mongodb:myDb?database=flights&collection=cancellations&tailTrackIncreasingField=departureTime&persistentTailTracking=true" +
"&persistentId=cancellationsTracker")
.id("tailableCursorConsumer2")
.autoStartup(false)
.to("mock:test");
以下は、上記の別の例ですが、「lastProcessedDepartureTime」フィールドの「trackers.camelTrackers」コレクションの下に永続的なテールトラッキングのランタイム情報が保存されます。
from("mongodb:myDb?database=flights&collection=cancellations&tailTrackIncreasingField=departureTime&persistentTailTracking=true" +
"&persistentId=cancellationsTracker&tailTrackDb=trackers&tailTrackCollection=camelTrackers" +
"&tailTrackField=lastProcessedDepartureTime")
.id("tailableCursorConsumer3")
.autoStartup(false)
.to("mock:test");