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