Partager via


ServiceBusClientBuilder.ServiceBusProcessorClientBuilder Classe

  • java.lang.Object
    • com.azure.messaging.servicebus.ServiceBusClientBuilder.ServiceBusProcessorClientBuilder

public final class ServiceBusClientBuilder.ServiceBusProcessorClientBuilder

Générateur de création ServiceBusProcessorClient pour consommer des messages à partir d’une entité Service Bus. ServiceBusProcessorClient fournit un mécanisme basé sur l’envoi (push) qui notifie le rappel de traitement du message lorsqu’un message est reçu ou le handle d’erreur lorsqu’une erreur est observée. Pour créer un instance, par conséquent, la configuration des deux rappels - processMessage(Consumer<ServiceBusReceivedMessageContext> processMessage) et processError(Consumer<ServiceBusErrorContext> processError) sont nécessaires. Par défaut, un ServiceBusProcessorClient est configuré avec des fonctionnalités de saisie semi-automatique et de renouvellement de verrouillage automatique.

Exemple de code pour instancier un client processeur et recevoir en mode PeekLock

// Function that gets called whenever a message is received.
 Consumer<ServiceBusReceivedMessageContext> processMessage = context -> {
     final ServiceBusReceivedMessage message = context.getMessage();
     // Randomly complete or abandon each message. Ideally, in real-world scenarios, if the business logic
     // handling message reaches desired state such that it doesn't require Service Bus to redeliver
     // the same message, then context.complete() should be called otherwise context.abandon().
     final boolean success = Math.random() < 0.5;
     if (success) {
         try {
             context.complete();
         } catch (RuntimeException error) {
             System.out.printf("Completion of the message %s failed.%n Error: %s%n",
                 message.getMessageId(), error);
         }
     } else {
         try {
             context.abandon();
         } catch (RuntimeException error) {
             System.out.printf("Abandoning of the message %s failed.%nError: %s%n",
                 message.getMessageId(), error);
         }
     }
 };

 // Sample code that gets called if there's an error
 Consumer<ServiceBusErrorContext> processError = errorContext -> {
     if (errorContext.getException() instanceof ServiceBusException) {
         ServiceBusException exception = (ServiceBusException) errorContext.getException();

         System.out.printf("Error source: %s, reason %s%n", errorContext.getErrorSource(),
             exception.getReason());
     } else {
         System.out.printf("Error occurred: %s%n", errorContext.getException());
     }
 };

 TokenCredential tokenCredential = new DefaultAzureCredentialBuilder().build();

 // Create the processor client via the builder and its sub-builder
 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 ServiceBusProcessorClient processorClient = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, tokenCredential)
     .processor()
     .queueName(queueName)
     .receiveMode(ServiceBusReceiveMode.PEEK_LOCK)
     .disableAutoComplete()  // Make sure to explicitly opt in to manual settlement (e.g. complete, abandon).
     .processMessage(processMessage)
     .processError(processError)
     .disableAutoComplete()
     .buildProcessorClient();

 // Starts the processor in the background. Control returns immediately.
 processorClient.start();

 // Stop processor and dispose when done processing messages.
 processorClient.stop();
 processorClient.close();

Exemple de code pour instancier un client de processeur et recevoir en mode ReceiveAndDelete

// Function that gets called whenever a message is received.
 Consumer<ServiceBusReceivedMessageContext> processMessage = context -> {
     final ServiceBusReceivedMessage message = context.getMessage();
     System.out.printf("Processing message. Session: %s, Sequence #: %s. Contents: %s%n",
         message.getSessionId(), message.getSequenceNumber(), message.getBody());
 };

 // Sample code that gets called if there's an error
 Consumer<ServiceBusErrorContext> processError = errorContext -> {
     if (errorContext.getException() instanceof ServiceBusException) {
         ServiceBusException exception = (ServiceBusException) errorContext.getException();

         System.out.printf("Error source: %s, reason %s%n", errorContext.getErrorSource(),
             exception.getReason());
     } else {
         System.out.printf("Error occurred: %s%n", errorContext.getException());
     }
 };

 TokenCredential tokenCredential = new DefaultAzureCredentialBuilder().build();

 // Create the processor client via the builder and its sub-builder
 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 // 'disableAutoComplete()' will opt in to manual settlement (e.g. complete, abandon).
 ServiceBusProcessorClient processorClient = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, tokenCredential)
     .processor()
     .queueName(queueName)
     .receiveMode(ServiceBusReceiveMode.RECEIVE_AND_DELETE)
     .processMessage(processMessage)
     .processError(processError)
     .disableAutoComplete()
     .buildProcessorClient();

 // Starts the processor in the background. Control returns immediately.
 processorClient.start();

 // Stop processor and dispose when done processing messages.
 processorClient.stop();
 processorClient.close();

Résumé de la méthode

Modificateur et type Méthode et description
ServiceBusProcessorClient buildProcessorClient()

Crée un processeur de messages Service Bus chargé de la lecture ServiceBusReceivedMessage à partir d’une file d’attente ou d’un abonnement spécifique.

ServiceBusProcessorClientBuilder disableAutoComplete()

Désactive la saisie semi-automatique et l’abandon automatique des messages reçus.

ServiceBusProcessorClientBuilder maxAutoLockRenewDuration(Duration maxAutoLockRenewDuration)

Définit la durée de la poursuite du renouvellement automatique du verrou.

ServiceBusProcessorClientBuilder maxConcurrentCalls(int maxConcurrentCalls)

Nombre maximal de messages simultanés que ce processeur doit traiter.

ServiceBusProcessorClientBuilder prefetchCount(int prefetchCount)

Définit le nombre de prérécupérations du processeur.

ServiceBusProcessorClientBuilder processError(Consumer<ServiceBusErrorContext> processError)

Gestionnaire d’erreurs pour le processeur qui sera appelé en cas d’erreur lors de la réception de messages.

ServiceBusProcessorClientBuilder processMessage(Consumer<ServiceBusReceivedMessageContext> processMessage)

Rappel de traitement des messages pour le processeur qui sera exécuté lors de la réception d’un message.

ServiceBusProcessorClientBuilder queueName(String queueName)

Définit le nom de la file d’attente pour laquelle créer un processeur.

ServiceBusProcessorClientBuilder receiveMode(ServiceBusReceiveMode receiveMode)

Définit le mode de réception du processeur.

ServiceBusProcessorClientBuilder subQueue(SubQueue subQueue)

Définit le type de auquel SubQueue se connecter.

ServiceBusProcessorClientBuilder subscriptionName(String subscriptionName)

Définit le nom de l’abonnement dans la rubrique à écouter.

ServiceBusProcessorClientBuilder topicName(String topicName)

Définit le nom de la rubrique.

Méthodes héritées de java.lang.Object

Détails de la méthode

buildProcessorClient

public ServiceBusProcessorClient buildProcessorClient()

Crée un processeur de messages Service Bus chargé de la lecture ServiceBusReceivedMessage à partir d’une file d’attente ou d’un abonnement spécifique.

Returns:

Nouveau ServiceBusProcessorClient qui traite les messages d’une file d’attente ou d’un abonnement.

disableAutoComplete

public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder disableAutoComplete()

Désactive la saisie semi-automatique et l’abandon automatique des messages reçus. Par défaut, un message correctement traité est complete(). Si une erreur se produit lorsque le message est traité, il s’agit abandon()de .

Returns:

Objet ServiceBusProcessorClientBuilder modifié.

maxAutoLockRenewDuration

public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder maxAutoLockRenewDuration(Duration maxAutoLockRenewDuration)

Définit la durée de la poursuite du renouvellement automatique du verrou. Définir Duration#ZERO ou null désactiver le renouvellement automatique. Pour RECEIVE_AND_DELETE le mode, le renouvellement automatique est désactivé.

Parameters:

maxAutoLockRenewDuration - durée de la poursuite du renouvellement automatique du verrou. Duration#ZERO ou null indique que le renouvellement automatique est désactivé.

Returns:

Objet mis à jour ServiceBusProcessorClientBuilder .

maxConcurrentCalls

public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder maxConcurrentCalls(int maxConcurrentCalls)

Nombre maximal de messages simultanés que ce processeur doit traiter. Par défaut, cette valeur est définie sur 1.

Parameters:

maxConcurrentCalls - nombre maximal de messages simultanés que ce processeur doit traiter.

Returns:

Objet mis à jour ServiceBusProcessorClientBuilder .

prefetchCount

public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder prefetchCount(int prefetchCount)

Définit le nombre de prérécupérations du processeur. Pour les deux PEEK_LOCK modes et RECEIVE_AND_DELETE , la valeur par défaut est 0. La prérécupération accélère le flux de messages en visant à avoir un message facilement disponible pour une récupération locale lorsque et avant que l’application démarre le processeur. La définition d’une valeur autre que zéro prérécupérera ce nombre de messages. La définition de la valeur zéro désactive la prérécupération.

Parameters:

prefetchCount - Nombre de prérécupérations.

Returns:

Objet ServiceBusProcessorClientBuilder modifié.

processError

public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder processError(Consumer processError)

Gestionnaire d’erreurs pour le processeur qui sera appelé en cas d’erreur lors de la réception de messages.

Parameters:

processError - Gestionnaire d’erreurs qui sera exécuté lorsqu’une erreur se produit.

Returns:

Objet mis à jour ServiceBusProcessorClientBuilder

processMessage

public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder processMessage(Consumer processMessage)

Rappel de traitement des messages pour le processeur qui sera exécuté lors de la réception d’un message.

Parameters:

processMessage - Consommateur de traitement des messages qui sera exécuté lors de la réception d’un message.

Returns:

Objet mis à jour ServiceBusProcessorClientBuilder .

queueName

public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder queueName(String queueName)

Définit le nom de la file d’attente pour laquelle créer un processeur.

Parameters:

queueName - Nom de la file d’attente.

Returns:

Objet ServiceBusProcessorClientBuilder modifié.

receiveMode

public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder receiveMode(ServiceBusReceiveMode receiveMode)

Définit le mode de réception du processeur.

Parameters:

receiveMode - Mode de réception des messages.

Returns:

Objet ServiceBusProcessorClientBuilder modifié.

subQueue

public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder subQueue(SubQueue subQueue)

Définit le type de auquel SubQueue se connecter. Azure Service Bus files d’attente et abonnements fournissent une sous-file d’attente secondaire, appelée file d’attente de lettres mortes (DLQ).

Parameters:

subQueue - Type de la sous-file d’attente.

Returns:

Objet ServiceBusProcessorClientBuilder modifié.

subscriptionName

public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder subscriptionName(String subscriptionName)

Définit le nom de l’abonnement dans la rubrique à écouter. topicName(String topicName) doit également être défini.

Parameters:

subscriptionName - Nom de l'abonnement.

Returns:

Objet ServiceBusProcessorClientBuilder modifié.

topicName

public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder topicName(String topicName)

Définit le nom de la rubrique. subscriptionName(String subscriptionName) doit également être défini.

Parameters:

topicName - Nom de la rubrique.

Returns:

Objet ServiceBusProcessorClientBuilder modifié.

S’applique à