Implementieren des Änderungsfeedprozessors

Abgeschlossen

Der Änderungsfeedprozessor wird in wenigen Schritten erstellt:

  1. Abrufen des Prozessor-Generators aus der überwachten Containervariablen (Quelle)
  2. Verwenden des Generators, um den Prozessor zu erstellen, indem der Delegat, der Prozessorname, der Leasecontainer und der Hostinstanzname angegeben wird
  3. Starten des Prozessors

Zunächst sollten Sie eine Instanz von Microsoft.Azure.Cosmos.Container sowohl für den Quellcontainer als auch für den Leasecontainer erstellen.

Container sourceContainer = client.GetContainer("cosmicworks", "products");

Container leaseContainer = client.GetContainer("cosmicworks", "productslease");

Anschließend können Sie die GetChangeFeedProcessorBuilder-Methode aus einer Containerinstanz verwenden, um einen Generator zu erstellen. An diesem Punkt sollten Sie den Namen des Prozessors und den Delegaten angeben, um jeden Batch von Änderungen zu verarbeiten.

var builder = sourceContainer.GetChangeFeedProcessorBuilder<Product>(
    processorName: "productItemProcessor",
    onChangesDelegate: changeHandlerDelegate
);

Der Generator verfügt über eine Reihe von Fluent-Methoden, um den Prozessor zu konfigurieren, die unter anderem Folgendes umfassen:

Methode Beschreibung
WithInstanceName Der Name der Hostinstanz.
WithStartTime Legt den Zeiger (als Zeitangabe) fest, nach dem nach Änderungen gesucht wird.
WithLeaseContainer Konfiguriert den Leasecontainer.
WithErrorNotification Weist einen Delegaten zu, um Fehler während der Ausführung zu behandeln.
WithMaxItems Quantifiziert die maximale Anzahl von Elementen in jedem Batch.
WithPollInterval Legt die Verzögerung fest, nach der der Prozessor den Änderungsfeed auf neue Änderungen überprüft.

Ein einfaches Beispiel wäre das Konfigurieren des Instanznamens mit withInstanceName, des Leasecontainers mit withLeaseContainer und das anschließende Erstellen des Änderungsfeedprozessors.

ChangeFeedProcessor processor = builder
    .WithInstanceName("desktopApplication")
    .WithLeaseContainer(leaseContainer)
    .Build();

Der sich ergebende Änderungsfeedprozessor umfasst die StartAsync- und StopAsync-Methoden, um den Prozessor asynchron auszuführen und zu beenden.

await processor.StartAsync();

// Wait while processor handles items

await processor.StopAsync();