Partager via


ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder Classe

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

public final class ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder

Générateur de création ServiceBusProcessorClient pour consommer des messages à partir d’une entité Service Bus basée sur une session. ServiceBusProcessorClient traite les messages et les erreurs via processMessage(Consumer<ServiceBusReceivedMessageContext> processMessage) et processError(Consumer<ServiceBusErrorContext> processError). Lorsque le processeur termine le traitement d’une session, il tente d’extraire la session suivante à traiter.

Par défaut, le processeur :

Instancier un client de processeur activé pour la session

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

 Consumer<ServiceBusErrorContext> onError = context -> {
     System.out.printf("Error when receiving messages from namespace: '%s'. Entity: '%s'%n",
         context.getFullyQualifiedNamespace(), context.getEntityPath());

     if (context.getException() instanceof ServiceBusException) {
         ServiceBusException exception = (ServiceBusException) context.getException();

         System.out.printf("Error source: %s, reason %s%n", context.getErrorSource(),
             exception.getReason());
     } else {
         System.out.printf("Error occurred: %s%n", context.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 sessionProcessor = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, tokenCredential)
     .sessionProcessor()
     .queueName(sessionEnabledQueueName)
     .receiveMode(ServiceBusReceiveMode.PEEK_LOCK)
     .disableAutoComplete()
     .maxConcurrentSessions(2)
     .processMessage(onMessage)
     .processError(onError)
     .buildProcessorClient();

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

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

Résumé de la méthode

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

Crée un processeur Service Bus prenant en charge la session responsable de la lecture ServiceBusReceivedMessage à partir d’une file d’attente ou d’un abonnement spécifique.

ServiceBusSessionProcessorClientBuilder disableAutoComplete()

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

ServiceBusSessionProcessorClientBuilder maxAutoLockRenewDuration(Duration maxAutoLockRenewDuration)

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

ServiceBusSessionProcessorClientBuilder maxConcurrentCalls(int maxConcurrentCalls)

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

ServiceBusSessionProcessorClientBuilder maxConcurrentSessions(int maxConcurrentSessions)

Active la substitution de traitement de session en traitant au maximum maxConcurrentSessions.

ServiceBusSessionProcessorClientBuilder prefetchCount(int prefetchCount)

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

ServiceBusSessionProcessorClientBuilder processError(Consumer<ServiceBusErrorContext> processError)

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

ServiceBusSessionProcessorClientBuilder processMessage(Consumer<ServiceBusReceivedMessageContext> processMessage)

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

ServiceBusSessionProcessorClientBuilder queueName(String queueName)

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

ServiceBusSessionProcessorClientBuilder receiveMode(ServiceBusReceiveMode receiveMode)

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

ServiceBusSessionProcessorClientBuilder sessionIdleTimeout(Duration sessionIdleTimeout)

Définit la durée maximale d’attente de réception d’un message pour la session active.

ServiceBusSessionProcessorClientBuilder subQueue(SubQueue subQueue)

Définit le type de auquel SubQueue se connecter.

ServiceBusSessionProcessorClientBuilder subscriptionName(String subscriptionName)

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

ServiceBusSessionProcessorClientBuilder 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 Service Bus prenant en charge la session responsable de la lecture ServiceBusReceivedMessage à partir d’une file d’attente ou d’un abonnement spécifique.

Returns:

Nouveau ServiceBusProcessorClient qui reçoit des messages d’une file d’attente ou d’un abonnement.

disableAutoComplete

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder 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 ServiceBusSessionProcessorClientBuilder modifié.

maxAutoLockRenewDuration

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder 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 ServiceBusSessionProcessorClientBuilder .

maxConcurrentCalls

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder maxConcurrentCalls(int maxConcurrentCalls)

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

Parameters:

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

Returns:

Objet mis à jour ServiceBusSessionProcessorClientBuilder .

maxConcurrentSessions

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder maxConcurrentSessions(int maxConcurrentSessions)

Active la substitution de traitement de session en traitant au maximum maxConcurrentSessions.

Parameters:

maxConcurrentSessions - Nombre maximal de sessions simultanées à traiter à un moment donné.

Returns:

Objet ServiceBusSessionProcessorClientBuilder modifié.

prefetchCount

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder 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. L’utilisation d’une prérécupération non nulle risque de perdre des messages, même si elle offre de meilleures performances.

Parameters:

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

Returns:

Objet ServiceBusProcessorClientBuilder modifié.

processError

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder 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.ServiceBusSessionProcessorClientBuilder 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.ServiceBusSessionProcessorClientBuilder 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 ServiceBusSessionProcessorClientBuilder modifié.

receiveMode

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder receiveMode(ServiceBusReceiveMode receiveMode)

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

Parameters:

receiveMode - Mode de réception des messages.

Returns:

Objet ServiceBusSessionProcessorClientBuilder modifié.

sessionIdleTimeout

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder sessionIdleTimeout(Duration sessionIdleTimeout)

Définit la durée maximale d’attente de réception d’un message pour la session active. Une fois ce délai écoulé, l’UC ferme la session et tente de traiter une autre session.

Une fois que le processeur a envoyé un message au processMessage(Consumer<ServiceBusReceivedMessageContext> processMessage) gestionnaire, si le processeur ne peut pas recevoir le message suivant de la session, car il n’y a pas de message suivant dans la session ou si le traitement du message actuel prend plus de temps que le sessionIdleTimeout , la session expire. Pour éviter de perdre par inadvertance des sessions, choisissez une sessionIdleTimeout valeur supérieure à la durée de traitement d’un message.

S’il n’est pas spécifié, le AmqpRetryOptions#getTryTimeout() est utilisé.

Parameters:

sessionIdleTimeout - Délai d’inactivité de session.

Returns:

Objet mis à jour ServiceBusSessionProcessorClientBuilder .

subQueue

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder 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 ServiceBusSessionProcessorClientBuilder modifié.

subscriptionName

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder 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 ServiceBusSessionProcessorClientBuilder modifié.

topicName

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder 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 ServiceBusSessionProcessorClientBuilder modifié.

S’applique à