変更フィード プロセッサを実装する
変更フィード プロセッサは、数手順で作成されます。
- 監視対象 (ソース) コンテナー変数からプロセッサ ビルダーを取得します
- ビルダーを使用して、デリゲート、プロセッサ名、リース コンテナー、ホスト インスタンス名を指定して、プロセッサを構築します
- プロセッサを起動します
まず、ソースとリース コンテナーの両方用に Microsoft.Azure.Cosmos.Container のインスタンスを作成する必要があります。
Container sourceContainer = client.GetContainer("cosmicworks", "products");
Container leaseContainer = client.GetContainer("cosmicworks", "productslease");
次に、コンテナー インスタンスの GetChangeFeedProcessorBuilder メソッドを使用してビルダーを作成できます。 この時点で、変更の各バッチを処理するプロセッサとデリゲートの名前を指定する必要があります。
var builder = sourceContainer.GetChangeFeedProcessorBuilder<Product>(
processorName: "productItemProcessor",
onChangesDelegate: changeHandlerDelegate
);
ビルダーには、次を含む (これらに限定されません) プロセッサを構成する一連の fluent メソッドが付属しています。
方法 | 説明 |
---|---|
WithInstanceName | ホスト インスタンスの名前 |
WithStartTime | 後で変更の検索を開始する場合に、(特定の時点の) ポインターを設定します |
WithLeaseContainer | リース コンテナーを構成します |
WithErrorNotification | 実行中のエラーを処理するデリゲートを割り当てます |
WithMaxItems | 各バッチ内の項目の最大数を定量化します |
WithPollInterval | プロセッサが新しい変更の変更フィードをポーリングするときの遅延を設定します |
簡単な例として、WithInstanceName を使用してインスタンス名を、WithLeaseContainer を使用してリース コンテナーを構成し、その後、変更フィード プロセッサを構築します。
ChangeFeedProcessor processor = builder
.WithInstanceName("desktopApplication")
.WithLeaseContainer(leaseContainer)
.Build();
結果として得られる変更フィード プロセッサには、プロセッサを非同期的に実行および終了する StartAsync と StopAsync メソッド両方が含まれます。
await processor.StartAsync();
// Wait while processor handles items
await processor.StopAsync();