変更フィード プロセッサを実装する

完了

変更フィード プロセッサは、数手順で作成されます。

  1. 監視対象 (ソース) コンテナー変数からプロセッサ ビルダーを取得します
  2. ビルダーを使用して、デリゲート、プロセッサ名、リース コンテナー、ホスト インスタンス名を指定して、プロセッサを構築します
  3. プロセッサを起動します

まず、ソースとリース コンテナーの両方用に 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();

結果として得られる変更フィード プロセッサには、プロセッサを非同期的に実行および終了する StartAsyncStopAsync メソッド両方が含まれます。

await processor.StartAsync();

// Wait while processor handles items

await processor.StopAsync();