ServiceBusSenderClient Classe
- java.
lang. Object - com.
azure. messaging. servicebus. ServiceBusSenderClient
- com.
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. |
Service |
createMessageBatch()
Crée un ServiceBusMessageBatch qui peut s’adapter à autant de messages que le transport le permet. |
Service |
createMessageBatch(CreateMessageBatchOptions options)
Crée un ServiceBusMessageBatch configuré avec les options spécifiées. |
Service |
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:
cancelScheduledMessages
public void cancelScheduledMessages(Iterable
Annule la mise en file d’attente des messages planifiés, s’ils ne sont pas déjà mis en file d’attente.
Parameters:
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:
createMessageBatch
public ServiceBusMessageBatch createMessageBatch()
Crée un ServiceBusMessageBatch qui peut s’adapter à autant de messages que le transport le permet.
Returns:
createMessageBatch
public ServiceBusMessageBatch createMessageBatch(CreateMessageBatchOptions options)
Crée un ServiceBusMessageBatch configuré avec les options spécifiées.
Parameters:
Returns:
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:
getFullyQualifiedNamespace
public String getFullyQualifiedNamespace()
Obtient l’espace de noms complet.
Returns:
getIdentifier
public String getIdentifier()
Obtient l’identificateur du instance de ServiceBusSenderClient.
Returns:
rollbackTransaction
public void rollbackTransaction(ServiceBusTransactionContext transactionContext)
Restaure la transaction donnée et toutes les opérations qui lui sont associées.
Parameters:
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:
Returns:
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:
Returns:
scheduleMessages
public Iterable
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:
Returns:
scheduleMessages
public Iterable
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:
Returns:
sendMessage
public void sendMessage(ServiceBusMessage message)
Envoie un message à une file d’attente ou à une rubrique Service Bus.
Parameters:
sendMessage
public void sendMessage(ServiceBusMessage message, ServiceBusTransactionContext transactionContext)
Envoie un message à une file d’attente ou à une rubrique Service Bus.
Parameters:
sendMessages
public void sendMessages(ServiceBusMessageBatch batch)
Envoie un lot de messages à l’entité Azure Service Bus à laquelle cet expéditeur est connecté.
Parameters:
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:
sendMessages
public void sendMessages(Iterable
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:
sendMessages
public void sendMessages(Iterable
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:
S’applique à
Azure SDK for Java