Compartir a través de


ChangeFeedProcessorBuilder Clase

Definición

Proporciona una manera flexible de crear una instancia de IChangeFeedProcessor con un conjunto personalizado de parámetros.

public class ChangeFeedProcessorBuilder
type ChangeFeedProcessorBuilder = class
Public Class ChangeFeedProcessorBuilder
Herencia
ChangeFeedProcessorBuilder

Ejemplos

// Observer.cs
namespace Sample
{
    using System;
    using System.Collections.Generic;
    using System.Threading;
    using System.Threading.Tasks;
    using Microsoft.Azure.Documents;
    using Microsoft.Azure.Documents.ChangeFeedProcessor.FeedProcessing;

    class SampleObserver : IChangeFeedObserver
    {
        public Task CloseAsync(IChangeFeedObserverContext context, ChangeFeedObserverCloseReason reason)
        {
            return Task.CompletedTask;  // Note: requires targeting .Net 4.6+.
        }

        public Task OpenAsync(IChangeFeedObserverContext context)
        {
            return Task.CompletedTask;
        }

        public Task ProcessChangesAsync(IChangeFeedObserverContext context, IReadOnlyList<Document> docs, CancellationToken cancellationToken)
        {
            Console.WriteLine("ProcessChangesAsync: partition {0}, {1} docs", context.PartitionKeyRangeId, docs.Count);
            return Task.CompletedTask;
        }
    }
}

// Main.cs
namespace Sample
{
    using System;
    using System.Threading.Tasks;
    using Microsoft.Azure.Documents.ChangeFeedProcessor;
    using Microsoft.Azure.Documents.ChangeFeedProcessor.Logging;

    class ChangeFeedProcessorSample
    {
        public static void Run()
        {
            RunAsync().Wait();
        }

        static async Task RunAsync()
        {
            DocumentCollectionInfo feedCollectionInfo = new DocumentCollectionInfo()
            {
                DatabaseName = "DatabaseName",
                CollectionName = "MonitoredCollectionName",
                Uri = new Uri("https://sampleservice.documents.azure.com:443/"),
                MasterKey = "-- the auth key"
            };

            DocumentCollectionInfo leaseCollectionInfo = new DocumentCollectionInfo()
            {
                DatabaseName = "DatabaseName",
                CollectionName = "leases",
                Uri = new Uri("https://sampleservice.documents.azure.com:443/"),
                MasterKey = "-- the auth key"
            };

            var builder = new ChangeFeedProcessorBuilder();
            var processor = await builder
                .WithHostName("SampleHost")
                .WithFeedCollection(feedCollectionInfo)
                .WithLeaseCollection(leaseCollectionInfo)
                .WithObserver<SampleObserver>()
                .BuildAsync();

            await processor.StartAsync();

            Console.WriteLine("Change Feed Processor started. Press <Enter> key to stop...");
            Console.ReadLine();

            await processor.StopAsync();
        }
    }
}

Constructores

ChangeFeedProcessorBuilder()

Proporciona una manera flexible de crear una instancia de IChangeFeedProcessor con un conjunto personalizado de parámetros.

Métodos

BuildAsync()

Crea una nueva instancia de IChangeFeedProcessor con la configuración especificada.

BuildEstimatorAsync()

Crea una nueva instancia de IRemainingWorkEstimator para calcular el trabajo pendiente con la configuración especificada.

WithCheckpointPartitionProcessorFactory(ICheckpointPartitionProcessorFactory)

Establece el ICheckpointPartitionProcessorFactory objeto que se va a usar para crear IPartitionProcessor para el procesamiento de particiones.

WithCollectionResourceId(String)

Establece el identificador de recurso de recopilación de la colección supervisada.

WithDatabaseResourceId(String)

Establece el identificador de recurso de base de datos de la colección supervisada.

WithFeedCollection(DocumentCollectionInfo)

Establece el DocumentCollectionInfo de la colección para escuchar los cambios.

WithFeedDocumentClient(DocumentClient)

Establece un existente DocumentClient que se va a usar para leer de la colección supervisada.

WithFeedDocumentClient(IChangeFeedDocumentClient)

Establece un existente IChangeFeedDocumentClient que se va a usar para leer de la colección supervisada.

WithHealthMonitor(IHealthMonitor)

Establece el IHealthMonitor objeto que se va a usar para supervisar la situación de insalubridad.

WithHostName(String)

Establece el nombre de host.

WithLeaseCollection(DocumentCollectionInfo)

Establece el DocumentCollectionInfo de la colección que se va a usar para concesiones.

WithLeaseDocumentClient(DocumentClient)

Establece un existente DocumentClient que se va a usar para leer de la colección de concesiones.

WithLeaseDocumentClient(IChangeFeedDocumentClient)

Establece un existente IChangeFeedDocumentClient que se va a usar para leer de la colección de concesiones.

WithLeaseStoreManager(ILeaseStoreManager)

Establece el ILeaseStoreManager objeto que se va a usar para administrar concesiones.

WithObserver<T>()

Establece un tipo existente IChangeFeedObserver que un objeto va a usar IChangeFeedObserverFactory para procesar los cambios.

WithObserverFactory(IChangeFeedObserverFactory)

Establece el IChangeFeedObserverFactory objeto que se va a usar para generar IChangeFeedObserver

WithPartitionLoadBalancingStrategy(IParitionLoadBalancingStrategy)

Establece el objeto que se va a usar para el IParitionLoadBalancingStrategy equilibrio de carga de particiones.

WithPartitionProcessorFactory(IPartitionProcessorFactory)

Establece el IPartitionProcessorFactory objeto que se va a usar para crear IPartitionProcessor para el procesamiento de particiones.

WithProcessorOptions(ChangeFeedProcessorOptions)

Establece el ChangeFeedProcessorOptions objeto que usará esta instancia de IChangeFeedProcessor.

Se aplica a