Implementare il processore dei feed di modifiche
Bastano pochi passaggi per creare il processore del feed di modifiche:
- Ottenere il generatore di processori dalla variabile del contenitore monitorata (di origine)
- Usare il generatore per compilare il processore specificando il delegato, il nome del processore, il contenitore di lease e il nome dell'istanza host
- Avviare il processore
Prima di tutto, è necessario creare un'istanza di Microsoft.Azure.Cosmos. Container sia per il contenitore di origine che per il contenitore di lease.
Container sourceContainer = client.GetContainer("cosmicworks", "products");
Container leaseContainer = client.GetContainer("cosmicworks", "productslease");
Successivamente, è possibile usare il metodo GetChangeFeedProcessorBuilder da un'istanza del contenitore per creare un generatore. A questo punto, è necessario specificare il nome del processore e il delegato per gestire ogni batch di modifiche.
var builder = sourceContainer.GetChangeFeedProcessorBuilder<Product>(
processorName: "productItemProcessor",
onChangesDelegate: changeHandlerDelegate
);
Il generatore viene fornito con una serie di metodi Fluent per configurare il processore, tra i quali:
Metodo | Descrizione |
---|---|
WithInstanceName | Nome dell'istanza host |
WithStartTime | Impostare il puntatore (nel tempo) per iniziare a cercare le modifiche dopo |
WithLeaseContainer | Configura il contenitore di lease |
WithErrorNotification | Assegna un delegato per gestire gli errori durante l'esecuzione |
WithMaxItems | Quantifica il numero massimo di elementi in ogni batch |
WithPollInterval | Imposta il ritardo quando il processore eseguirà il polling del feed di modifiche per le nuove modifiche |
Un semplice esempio è configurare il nome dell'istanza usando WithInstanceName, il contenitore di lease con WithLeaseContainer e quindi usare Build per compilare il processore del feed di modifiche.
ChangeFeedProcessor processor = builder
.WithInstanceName("desktopApplication")
.WithLeaseContainer(leaseContainer)
.Build();
Il processore del feed di modifiche risultante include entrambi i metodi StartAsync e StopAsync per eseguire e terminare il processore in modo asincrono.
await processor.StartAsync();
// Wait while processor handles items
await processor.StopAsync();