Compartilhar via


ChangeFeedProcessorBuilder Classe

Definição

Fornece uma maneira flexível de criar uma instância do IChangeFeedProcessor com um conjunto personalizado de parâmetros.

public class ChangeFeedProcessorBuilder
type ChangeFeedProcessorBuilder = class
Public Class ChangeFeedProcessorBuilder
Herança
ChangeFeedProcessorBuilder

Exemplos

// 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();
        }
    }
}

Construtores

ChangeFeedProcessorBuilder()

Fornece uma maneira flexível de criar uma instância do IChangeFeedProcessor com um conjunto personalizado de parâmetros.

Métodos

BuildAsync()

Cria uma nova instância do IChangeFeedProcessor com a configuração especificada.

BuildEstimatorAsync()

Cria uma nova instância do para estimar o IRemainingWorkEstimator trabalho pendente com a configuração especificada.

WithCheckpointPartitionProcessorFactory(ICheckpointPartitionProcessorFactory)

Define o ICheckpointPartitionProcessorFactory a ser usado para criar IPartitionProcessor para processamento de partição.

WithCollectionResourceId(String)

Define a ID do Recurso de Coleção da coleção monitorada.

WithDatabaseResourceId(String)

Define a ID do Recurso de Banco de Dados da coleção monitorada.

WithFeedCollection(DocumentCollectionInfo)

Define o DocumentCollectionInfo da coleção para escutar alterações.

WithFeedDocumentClient(DocumentClient)

Define um existente DocumentClient a ser usado para ler da coleção monitorada.

WithFeedDocumentClient(IChangeFeedDocumentClient)

Define um existente IChangeFeedDocumentClient a ser usado para ler da coleção monitorada.

WithHealthMonitor(IHealthMonitor)

Define o IHealthMonitor a ser usado para monitorar a situação de não integridade.

WithHostName(String)

Define o Nome do host.

WithLeaseCollection(DocumentCollectionInfo)

Define o DocumentCollectionInfo da coleção a ser usada para concessões.

WithLeaseDocumentClient(DocumentClient)

Define um existente DocumentClient a ser usado para ler da coleção de concessões.

WithLeaseDocumentClient(IChangeFeedDocumentClient)

Define um existente IChangeFeedDocumentClient a ser usado para ler da coleção de concessões.

WithLeaseStoreManager(ILeaseStoreManager)

Define o ILeaseStoreManager a ser usado para gerenciar concessões.

WithObserver<T>()

Define um tipo existente IChangeFeedObserver a ser usado por um IChangeFeedObserverFactory para processar alterações.

WithObserverFactory(IChangeFeedObserverFactory)

Define o IChangeFeedObserverFactory a ser usado para gerar IChangeFeedObserver

WithPartitionLoadBalancingStrategy(IParitionLoadBalancingStrategy)

Define o IParitionLoadBalancingStrategy a ser usado para balanceamento de carga de partição

WithPartitionProcessorFactory(IPartitionProcessorFactory)

Define o IPartitionProcessorFactory a ser usado para criar IPartitionProcessor para processamento de partição.

WithProcessorOptions(ChangeFeedProcessorOptions)

Define o ChangeFeedProcessorOptions a ser usado por essa instância do IChangeFeedProcessor.

Aplica-se a