Partager via


ChangeFeedProcessorBuilder Classe

Définition

Fournit un moyen flexible de créer un instance de IChangeFeedProcessor avec un ensemble personnalisé de paramètres.

public class ChangeFeedProcessorBuilder
type ChangeFeedProcessorBuilder = class
Public Class ChangeFeedProcessorBuilder
Héritage
ChangeFeedProcessorBuilder

Exemples

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

Constructeurs

ChangeFeedProcessorBuilder()

Fournit un moyen flexible de créer un instance de IChangeFeedProcessor avec un ensemble personnalisé de paramètres.

Méthodes

BuildAsync()

Génère une nouvelle instance de avec IChangeFeedProcessor la configuration spécifiée.

BuildEstimatorAsync()

Génère une nouvelle instance de pour estimer le IRemainingWorkEstimator travail en attente avec la configuration spécifiée.

WithCheckpointPartitionProcessorFactory(ICheckpointPartitionProcessorFactory)

Définit le à utiliser pour créer IPartitionProcessor pour le ICheckpointPartitionProcessorFactory traitement des partitions.

WithCollectionResourceId(String)

Définit l’ID de ressource de collection de la collection surveillée.

WithDatabaseResourceId(String)

Définit l’ID de ressource de base de données de la collection surveillée.

WithFeedCollection(DocumentCollectionInfo)

Définit le DocumentCollectionInfo de la collection pour écouter les modifications.

WithFeedDocumentClient(DocumentClient)

Définit un existant DocumentClient à utiliser pour lire à partir de la collection supervisée.

WithFeedDocumentClient(IChangeFeedDocumentClient)

Définit un existant IChangeFeedDocumentClient à utiliser pour lire à partir de la collection supervisée.

WithHealthMonitor(IHealthMonitor)

Définit le à utiliser pour surveiller la IHealthMonitor situation d’insalubrité.

WithHostName(String)

Définit le nom d’hôte.

WithLeaseCollection(DocumentCollectionInfo)

Définit le DocumentCollectionInfo de la collection à utiliser pour les baux.

WithLeaseDocumentClient(DocumentClient)

Définit un existant DocumentClient à utiliser pour lire à partir de la collection de baux.

WithLeaseDocumentClient(IChangeFeedDocumentClient)

Définit un existant IChangeFeedDocumentClient à utiliser pour lire à partir de la collection de baux.

WithLeaseStoreManager(ILeaseStoreManager)

Définit le ILeaseStoreManager à utiliser pour gérer les baux.

WithObserver<T>()

Définit un type existant IChangeFeedObserver à utiliser par un IChangeFeedObserverFactory pour traiter les modifications.

WithObserverFactory(IChangeFeedObserverFactory)

Définit le IChangeFeedObserverFactory à utiliser pour générer IChangeFeedObserver

WithPartitionLoadBalancingStrategy(IParitionLoadBalancingStrategy)

Définit le à utiliser pour l’équilibrage IParitionLoadBalancingStrategy de charge des partitions

WithPartitionProcessorFactory(IPartitionProcessorFactory)

Définit le à utiliser pour créer IPartitionProcessor pour le IPartitionProcessorFactory traitement des partitions.

WithProcessorOptions(ChangeFeedProcessorOptions)

Définit le ChangeFeedProcessorOptions à utiliser par cette instance de IChangeFeedProcessor.

S’applique à