Partager via


ServiceBusSenderClient Classe

  • java.lang.Object
    • com.azure.messaging.servicebus.ServiceBusSenderClient

Implémente

public final class ServiceBusSenderClient
implements AutoCloseable

Expéditeur synchrone chargé de l’envoi ServiceBusMessage à une file d’attente ou à une rubrique sur Azure Service Bus.

Les exemples présentés dans ce document utilisent un objet d’informations d’identification nommé DefaultAzureCredential pour l’authentification, ce qui est approprié pour la plupart des scénarios, y compris les environnements de développement et de production locaux. En outre, nous vous recommandons d’utiliser l’identité managée pour l’authentification dans les environnements de production. Vous trouverez plus d’informations sur les différentes méthodes d’authentification et leurs types d’informations d’identification correspondants dans la documentation Azure Identity .

Exemple : Créer un instance de l’expéditeur

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

 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 ServiceBusSenderClient sender = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, credential)
     .sender()
     .queueName(queueName)
     .buildClient();

 sender.sendMessage(new ServiceBusMessage("Foo bar"));

Exemple : Envoyer des messages à une ressource Service Bus

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

 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 ServiceBusSenderClient sender = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, credential)
     .sender()
     .queueName(queueName)
     .buildClient();

 List<ServiceBusMessage> messages = Arrays.asList(
     new ServiceBusMessage("test-1"),
     new ServiceBusMessage("test-2"));

 // Creating a batch without options set.
 ServiceBusMessageBatch batch = sender.createMessageBatch();
 for (ServiceBusMessage message : messages) {
     if (batch.tryAddMessage(message)) {
         continue;
     }

     // The batch is full. Send the current batch and create a new one.
     sender.sendMessages(batch);

     batch = sender.createMessageBatch();

     // Add the message we couldn't before.
     if (!batch.tryAddMessage(message)) {
         throw new IllegalArgumentException("Message is too large for an empty batch.");
     }
 }

 // Send the final batch if there are any messages in it.
 if (batch.getCount() > 0) {
     sender.sendMessages(batch);
 }

 // Continue using the sender and finally, dispose of the sender.
 // Clients should be long-lived objects as they require resources
 // and time to establish a connection to the service.
 sender.close();

Exemple : Envoyer des messages à l’aide d’une taille limitée ServiceBusMessageBatch

List<ServiceBusMessage> telemetryMessages = Arrays.asList(firstMessage, secondMessage, thirdMessage);

 // Setting `setMaximumSizeInBytes` when creating a batch, limits the size of that batch.
 // In this case, all the batches created with these options are limited to 256 bytes.
 CreateMessageBatchOptions options = new CreateMessageBatchOptions()
     .setMaximumSizeInBytes(256);

 ServiceBusMessageBatch currentBatch = sender.createMessageBatch(options);

 // For each telemetry message, we try to add it to the current batch.
 // When the batch is full, send it then create another batch to add more mesages to.
 for (ServiceBusMessage message : telemetryMessages) {
     if (!currentBatch.tryAddMessage(message)) {
         sender.sendMessages(currentBatch);
         currentBatch = sender.createMessageBatch(options);

         // Add the message we couldn't before.
         if (!currentBatch.tryAddMessage(message)) {
             throw new IllegalArgumentException("Message is too large for an empty batch.");
         }
     }
 }

 // Send the final batch if there are any messages in it.
 if (currentBatch.getCount() > 0) {
     sender.sendMessages(currentBatch);
 }

 // Continue using the sender and finally, dispose of the sender.
 // Clients should be long-lived objects as they require resources
 // and time to establish a connection to the service.
 sender.close();

Exemple : Envoi d’un message à une file d’attente avec session

L’extrait de code ci-dessous illustre l’envoi d’un message à une file d’attente activée pour les sessions Service Bus . La définition setMessageId(String messageId) de la propriété sur « greetings » envoie le message à une session Service Bus avec l’ID « greetings ».

// 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 ServiceBusSenderClient sender = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, new DefaultAzureCredentialBuilder().build())
     .sender()
     .queueName(sessionEnabledQueueName)
     .buildClient();

 // Setting sessionId publishes that message to a specific session, in this case, "greeting".
 ServiceBusMessage message = new ServiceBusMessage("Hello world")
     .setSessionId("greetings");

 sender.sendMessage(message);

 // Dispose of the sender.
 sender.close();

Résumé de la méthode

Modificateur et type Méthode et description
void cancelScheduledMessage(long sequenceNumber)

Annule la mise en file d’attente d’un message planifié, s’il n’est pas déjà mis en file d’attente.

void cancelScheduledMessages(Iterable<Long> sequenceNumbers)

Annule la mise en file d’attente des messages planifiés, s’ils ne sont pas déjà mis en file d’attente.

void close()

Supprime .ServiceBusSenderClient

void commitTransaction(ServiceBusTransactionContext transactionContext)

Valide la transaction donnée ServiceBusTransactionContext.

ServiceBusMessageBatch createMessageBatch()

Crée un ServiceBusMessageBatch qui peut s’adapter à autant de messages que le transport le permet.

ServiceBusMessageBatch createMessageBatch(CreateMessageBatchOptions options)

Crée un ServiceBusMessageBatch configuré avec les options spécifiées.

ServiceBusTransactionContext createTransaction()

Démarre une nouvelle transaction sur Service Bus.

String getEntityPath()

Obtient le nom de la ressource Service Bus.

String getFullyQualifiedNamespace()

Obtient l’espace de noms complet.

String getIdentifier()

Obtient l’identificateur du instance de ServiceBusSenderClient.

void rollbackTransaction(ServiceBusTransactionContext transactionContext)

Restaure la transaction donnée et toutes les opérations qui lui sont associées.

Long scheduleMessage(ServiceBusMessage message, OffsetDateTime scheduledEnqueueTime)

Envoie un message planifié à l’entité Azure Service Bus à laquelle cet expéditeur est connecté.

Long scheduleMessage(ServiceBusMessage message, OffsetDateTime scheduledEnqueueTime, ServiceBusTransactionContext transactionContext)

Envoie un message planifié à l’entité Azure Service Bus à laquelle cet expéditeur est connecté.

Iterable<Long> scheduleMessages(Iterable<ServiceBusMessage> messages, OffsetDateTime scheduledEnqueueTime)

Envoie un lot de messages planifiés à l’entité Azure Service Bus à laquelle cet expéditeur est connecté.

Iterable<Long> scheduleMessages(Iterable<ServiceBusMessage> messages, OffsetDateTime scheduledEnqueueTime, ServiceBusTransactionContext transactionContext)

Envoie un lot de messages planifiés à l’entité Azure Service Bus à laquelle cet expéditeur est connecté.

void sendMessage(ServiceBusMessage message)

Envoie un message à une file d’attente ou à une rubrique Service Bus.

void sendMessage(ServiceBusMessage message, ServiceBusTransactionContext transactionContext)

Envoie un message à une file d’attente ou à une rubrique Service Bus.

void sendMessages(ServiceBusMessageBatch batch)

Envoie un lot de messages à l’entité Azure Service Bus à laquelle cet expéditeur est connecté.

void sendMessages(ServiceBusMessageBatch batch, ServiceBusTransactionContext transactionContext)

Envoie un lot de messages à l’entité Azure Service Bus à laquelle cet expéditeur est connecté.

void sendMessages(Iterable<ServiceBusMessage> messages)

Envoie un ensemble de à une file d’attente ServiceBusMessage ou à une rubrique Service Bus à l’aide d’une approche par lots.

void sendMessages(Iterable<ServiceBusMessage> messages, ServiceBusTransactionContext transactionContext)

Envoie un ensemble de à une file d’attente ServiceBusMessage ou à une rubrique Service Bus à l’aide d’une approche par lots.

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

Détails de la méthode

cancelScheduledMessage

public void cancelScheduledMessage(long sequenceNumber)

Annule la mise en file d’attente d’un message planifié, s’il n’est pas déjà mis en file d’attente.

Parameters:

sequenceNumber - Numéro de séquence du message à annuler.

cancelScheduledMessages

public void cancelScheduledMessages(Iterable sequenceNumbers)

Annule la mise en file d’attente des messages planifiés, s’ils ne sont pas déjà mis en file d’attente.

Parameters:

sequenceNumbers - Numéros de séquence des messages à annuler.

close

public void close()

Supprime .ServiceBusSenderClient Si le client dispose d’une connexion dédiée, la connexion sous-jacente est également fermée.

commitTransaction

public void commitTransaction(ServiceBusTransactionContext transactionContext)

Valide la transaction donnée ServiceBusTransactionContext.

Parameters:

transactionContext - à s’engager.

createMessageBatch

public ServiceBusMessageBatch createMessageBatch()

Crée un ServiceBusMessageBatch qui peut s’adapter à autant de messages que le transport le permet.

Returns:

ServiceBusMessageBatch qui peut s’adapter à autant de messages que le transport le permet.

createMessageBatch

public ServiceBusMessageBatch createMessageBatch(CreateMessageBatchOptions options)

Crée un ServiceBusMessageBatch configuré avec les options spécifiées.

Parameters:

options - Ensemble d’options utilisées pour configurer .ServiceBusMessageBatch

Returns:

Nouveau ServiceBusMessageBatch configuré avec les options indiquées.

createTransaction

public ServiceBusTransactionContext createTransaction()

Démarre une nouvelle transaction sur Service Bus. Le ServiceBusTransactionContext doit être transmis à toutes les opérations qui doivent se trouver dans cette transaction.

Returns:

getEntityPath

public String getEntityPath()

Obtient le nom de la ressource Service Bus.

Returns:

Nom de la ressource Service Bus.

getFullyQualifiedNamespace

public String getFullyQualifiedNamespace()

Obtient l’espace de noms complet.

Returns:

Espace de noms complet.

getIdentifier

public String getIdentifier()

Obtient l’identificateur du instance de ServiceBusSenderClient.

Returns:

Identificateur qui peut identifier le instance de ServiceBusSenderClient.

rollbackTransaction

public void rollbackTransaction(ServiceBusTransactionContext transactionContext)

Restaure la transaction donnée et toutes les opérations qui lui sont associées.

Parameters:

transactionContext - Transaction à restaurer.

scheduleMessage

public Long scheduleMessage(ServiceBusMessage message, OffsetDateTime scheduledEnqueueTime)

Envoie un message planifié à l’entité Azure Service Bus à laquelle cet expéditeur est connecté. Un message planifié est mis en file d’attente et mis à la disposition des récepteurs uniquement à l’heure d’attente planifiée.

Parameters:

message - Message à envoyer à la file d’attente ou à la rubrique Service Bus.
scheduledEnqueueTime - Datetime à laquelle le message doit apparaître dans la file d’attente ou la rubrique Service Bus.

Returns:

Numéro de séquence du message planifié qui peut être utilisé pour annuler la planification du message.

scheduleMessage

public Long scheduleMessage(ServiceBusMessage message, OffsetDateTime scheduledEnqueueTime, ServiceBusTransactionContext transactionContext)

Envoie un message planifié à l’entité Azure Service Bus à laquelle cet expéditeur est connecté. Un message planifié est mis en file d’attente et mis à la disposition des récepteurs uniquement à l’heure d’attente planifiée.

Parameters:

message - Message à envoyer à la file d’attente ou à la rubrique Service Bus.
scheduledEnqueueTime - Datetime à laquelle le message doit apparaître dans la file d’attente ou la rubrique Service Bus.
transactionContext - à définir sur le message avant l’envoi à Service Bus.

Returns:

Numéro de séquence du message planifié qui peut être utilisé pour annuler la planification du message.

scheduleMessages

public Iterable scheduleMessages(Iterable messages, OffsetDateTime scheduledEnqueueTime)

Envoie un lot de messages planifiés à l’entité Azure Service Bus à laquelle cet expéditeur est connecté. Un message planifié est mis en file d’attente et mis à la disposition des récepteurs uniquement à l’heure d’attente planifiée.

Parameters:

messages - Messages à envoyer à la file d’attente ou à la rubrique Service Bus.
scheduledEnqueueTime - Instant auquel le message doit apparaître dans la file d’attente ou la rubrique Service Bus.

Returns:

Numéros de séquence des messages planifiés qui peuvent être utilisés pour annuler les messages.

scheduleMessages

public Iterable scheduleMessages(Iterable messages, OffsetDateTime scheduledEnqueueTime, ServiceBusTransactionContext transactionContext)

Envoie un lot de messages planifiés à l’entité Azure Service Bus à laquelle cet expéditeur est connecté. Un message planifié est mis en file d’attente et mis à la disposition des récepteurs uniquement à l’heure d’attente planifiée.

Parameters:

messages - Messages à envoyer à la file d’attente ou à la rubrique Service Bus.
scheduledEnqueueTime - Instant auquel le message doit apparaître dans la file d’attente ou la rubrique Service Bus.
transactionContext - Transaction à associer à l’opération.

Returns:

Numéros de séquence des messages planifiés qui peuvent être utilisés pour annuler les messages.

sendMessage

public void sendMessage(ServiceBusMessage message)

Envoie un message à une file d’attente ou à une rubrique Service Bus.

Parameters:

message - Message à envoyer à la file d’attente ou à la rubrique Service Bus.

sendMessage

public void sendMessage(ServiceBusMessage message, ServiceBusTransactionContext transactionContext)

Envoie un message à une file d’attente ou à une rubrique Service Bus.

Parameters:

message - Message à envoyer à la file d’attente ou à la rubrique Service Bus.
transactionContext - à définir sur le message avant l’envoi à Service Bus.

sendMessages

public void sendMessages(ServiceBusMessageBatch batch)

Envoie un lot de messages à l’entité Azure Service Bus à laquelle cet expéditeur est connecté.

Parameters:

batch - de messages qui permet au client d’envoyer la taille maximale autorisée pour un lot de messages.

sendMessages

public void sendMessages(ServiceBusMessageBatch batch, ServiceBusTransactionContext transactionContext)

Envoie un lot de messages à l’entité Azure Service Bus à laquelle cet expéditeur est connecté.

Parameters:

batch - de messages qui permet au client d’envoyer la taille maximale autorisée pour un lot de messages.
transactionContext - à définir sur le message avant l’envoi à Service Bus.

sendMessages

public void sendMessages(Iterable messages)

Envoie un ensemble de à une file d’attente ServiceBusMessage ou à une rubrique Service Bus à l’aide d’une approche par lots. Si la taille des messages dépasse la taille maximale d’un lot unique, une exception est déclenchée et l’envoi échoue. Par défaut, la taille du message correspond à la quantité maximale autorisée sur le lien.

Parameters:

messages - Messages à envoyer à la file d’attente ou à la rubrique Service Bus.

sendMessages

public void sendMessages(Iterable messages, ServiceBusTransactionContext transactionContext)

Envoie un ensemble de à une file d’attente ServiceBusMessage ou à une rubrique Service Bus à l’aide d’une approche par lots. Si la taille des messages dépasse la taille maximale d’un lot unique, une exception est déclenchée et l’envoi échoue. Par défaut, la taille du message correspond à la quantité maximale autorisée sur le lien.

Parameters:

messages - Messages à envoyer à la file d’attente ou à la rubrique Service Bus.
transactionContext - à définir sur le message avant l’envoi à Service Bus.

S’applique à