ServiceBusSenderClient Klasse
- java.
lang. Object - com.
azure. messaging. servicebus. ServiceBusSenderClient
- com.
Implementiert
public final class ServiceBusSenderClient
implements AutoCloseable
Ein synchroner Absender, der für das Senden ServiceBusMessage an eine Warteschlange oder ein Thema auf Azure Service Bus verantwortlich ist.
Die in diesem Dokument gezeigten Beispiele verwenden ein Anmeldeinformationsobjekt namens DefaultAzureCredential für die Authentifizierung, das für die meisten Szenarien geeignet ist, einschließlich lokaler Entwicklungs- und Produktionsumgebungen. Darüber hinaus wird empfohlen, die verwaltete Identität für die Authentifizierung in Produktionsumgebungen zu verwenden. Weitere Informationen zu verschiedenen Authentifizierungsmethoden und den entsprechenden Anmeldeinformationstypen finden Sie in der Azure Identity-Dokumentation.
Beispiel: Erstellen eines instance des Absenders
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"));
Beispiel: Senden von Nachrichten an eine Service Bus-Ressource
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();
Beispiel: Senden von Nachrichten mit einer größenbeschränkten 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();
Beispiel: Senden einer Nachricht an eine sitzungsfähige Warteschlange
Der folgende Codeausschnitt veranschaulicht das Senden einer Nachricht an eine Service Bus-Sitzungswarteschlange , die aktiviert ist. Durch Festlegen setMessageId(String messageId) der Eigenschaft auf "Greetings" wird die Nachricht an eine Service Bus-Sitzung mit der ID "Greetings" gesendet.
// '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();
Methodenzusammenfassung
Modifizierer und Typ | Methode und Beschreibung |
---|---|
void |
cancelScheduledMessage(long sequenceNumber)
Bricht das Queuing einer geplanten Nachricht ab, wenn sie noch nicht in die Warteschlange gestellt wurde. |
void |
cancelScheduledMessages(Iterable<Long> sequenceNumbers)
Bricht das Queuing geplanter Nachrichten ab, wenn sie nicht bereits in die Warteschlange gestellt wurden. |
void |
close()
Veräußert den ServiceBusSenderClient. |
void |
commitTransaction(ServiceBusTransactionContext transactionContext)
Committ die angegebene ServiceBusTransactionContextTransaktion. |
Service |
createMessageBatch()
Erstellt eine ServiceBusMessageBatch , die so viele Nachrichten anpassen kann, wie der Transport zulässt. |
Service |
createMessageBatch(CreateMessageBatchOptions options)
Erstellt einen ServiceBusMessageBatch , der mit den angegebenen Optionen konfiguriert ist. |
Service |
createTransaction()
Startet eine neue Transaktion in Service Bus. |
String |
getEntityPath()
Ruft den Namen der Service Bus-Ressource ab. |
String |
getFullyQualifiedNamespace()
Ruft den vollqualifizierten Namespace ab. |
String |
getIdentifier()
Ruft den Bezeichner des instance von abServiceBusSenderClient. |
void |
rollbackTransaction(ServiceBusTransactionContext transactionContext)
Rollbacks für die angegebene Transaktion und alle ihr zugeordneten Vorgänge. |
Long |
scheduleMessage(ServiceBusMessage message, OffsetDateTime scheduledEnqueueTime)
Sendet eine geplante Nachricht an die Azure Service Bus Entität, mit der dieser Absender verbunden ist. |
Long |
scheduleMessage(ServiceBusMessage message, OffsetDateTime scheduledEnqueueTime, ServiceBusTransactionContext transactionContext)
Sendet eine geplante Nachricht an die Azure Service Bus Entität, mit der dieser Absender verbunden ist. |
Iterable<Long> |
scheduleMessages(Iterable<ServiceBusMessage> messages, OffsetDateTime scheduledEnqueueTime)
Sendet einen Batch geplanter Nachrichten an die Azure Service Bus Entität, mit der dieser Absender verbunden ist. |
Iterable<Long> |
scheduleMessages(Iterable<ServiceBusMessage> messages, OffsetDateTime scheduledEnqueueTime, ServiceBusTransactionContext transactionContext)
Sendet einen Batch geplanter Nachrichten an die Azure Service Bus Entität, mit der dieser Absender verbunden ist. |
void |
sendMessage(ServiceBusMessage message)
Sendet eine Nachricht an eine Service Bus-Warteschlange oder ein Service Bus-Thema. |
void |
sendMessage(ServiceBusMessage message, ServiceBusTransactionContext transactionContext)
Sendet eine Nachricht an eine Service Bus-Warteschlange oder ein Service Bus-Thema. |
void |
sendMessages(ServiceBusMessageBatch batch)
Sendet einen Nachrichtenbatch an die Azure Service Bus Entität, mit der der Absender verbunden ist. |
void |
sendMessages(ServiceBusMessageBatch batch, ServiceBusTransactionContext transactionContext)
Sendet einen Nachrichtenbatch an die Azure Service Bus Entität, mit der der Absender verbunden ist. |
void |
sendMessages(Iterable<ServiceBusMessage> messages)
Sendet eine Gruppe von ServiceBusMessage an eine Service Bus-Warteschlange oder ein Service Bus-Thema mithilfe eines Batchansatzes. |
void |
sendMessages(Iterable<ServiceBusMessage> messages, ServiceBusTransactionContext transactionContext)
Sendet eine Gruppe von ServiceBusMessage an eine Service Bus-Warteschlange oder ein Service Bus-Thema mithilfe eines Batchansatzes. |
Geerbte Methoden von java.lang.Object
Details zur Methode
cancelScheduledMessage
public void cancelScheduledMessage(long sequenceNumber)
Bricht das Queuing einer geplanten Nachricht ab, wenn sie noch nicht in die Warteschlange gestellt wurde.
Parameters:
cancelScheduledMessages
public void cancelScheduledMessages(Iterable
Bricht das Queuing geplanter Nachrichten ab, wenn sie nicht bereits in die Warteschlange gestellt wurden.
Parameters:
close
public void close()
Veräußert den ServiceBusSenderClient. Wenn der Client über eine dedizierte Verbindung verfügt, wird auch die zugrunde liegende Verbindung geschlossen.
commitTransaction
public void commitTransaction(ServiceBusTransactionContext transactionContext)
Committ die angegebene ServiceBusTransactionContextTransaktion.
Parameters:
createMessageBatch
public ServiceBusMessageBatch createMessageBatch()
Erstellt eine ServiceBusMessageBatch , die so viele Nachrichten anpassen kann, wie der Transport zulässt.
Returns:
createMessageBatch
public ServiceBusMessageBatch createMessageBatch(CreateMessageBatchOptions options)
Erstellt einen ServiceBusMessageBatch , der mit den angegebenen Optionen konfiguriert ist.
Parameters:
Returns:
createTransaction
public ServiceBusTransactionContext createTransaction()
Startet eine neue Transaktion in Service Bus. Sollte ServiceBusTransactionContext an alle Vorgänge übergeben werden, die in dieser Transaktion sein müssen.
Returns:
getEntityPath
public String getEntityPath()
Ruft den Namen der Service Bus-Ressource ab.
Returns:
getFullyQualifiedNamespace
public String getFullyQualifiedNamespace()
Ruft den vollqualifizierten Namespace ab.
Returns:
getIdentifier
public String getIdentifier()
Ruft den Bezeichner des instance von abServiceBusSenderClient.
Returns:
rollbackTransaction
public void rollbackTransaction(ServiceBusTransactionContext transactionContext)
Rollbacks für die angegebene Transaktion und alle ihr zugeordneten Vorgänge.
Parameters:
scheduleMessage
public Long scheduleMessage(ServiceBusMessage message, OffsetDateTime scheduledEnqueueTime)
Sendet eine geplante Nachricht an die Azure Service Bus Entität, mit der dieser Absender verbunden ist. Eine geplante Nachricht wird in die Warteschlange eingereiht und den Empfängern nur zur geplanten Queuezeit zur Verfügung gestellt.
Parameters:
Returns:
scheduleMessage
public Long scheduleMessage(ServiceBusMessage message, OffsetDateTime scheduledEnqueueTime, ServiceBusTransactionContext transactionContext)
Sendet eine geplante Nachricht an die Azure Service Bus Entität, mit der dieser Absender verbunden ist. Eine geplante Nachricht wird in die Warteschlange eingereiht und den Empfängern nur zur geplanten Queuezeit zur Verfügung gestellt.
Parameters:
Returns:
scheduleMessages
public Iterable
Sendet einen Batch geplanter Nachrichten an die Azure Service Bus Entität, mit der dieser Absender verbunden ist. Eine geplante Nachricht wird in die Warteschlange eingereiht und den Empfängern nur zur geplanten Warteschlange zur Verfügung gestellt.
Parameters:
Returns:
scheduleMessages
public Iterable
Sendet einen Batch geplanter Nachrichten an die Azure Service Bus Entität, mit der dieser Absender verbunden ist. Eine geplante Nachricht wird in die Warteschlange eingereiht und den Empfängern nur zur geplanten Warteschlange zur Verfügung gestellt.
Parameters:
Returns:
sendMessage
public void sendMessage(ServiceBusMessage message)
Sendet eine Nachricht an eine Service Bus-Warteschlange oder ein Service Bus-Thema.
Parameters:
sendMessage
public void sendMessage(ServiceBusMessage message, ServiceBusTransactionContext transactionContext)
Sendet eine Nachricht an eine Service Bus-Warteschlange oder ein Service Bus-Thema.
Parameters:
sendMessages
public void sendMessages(ServiceBusMessageBatch batch)
Sendet einen Nachrichtenbatch an die Azure Service Bus Entität, mit der der Absender verbunden ist.
Parameters:
sendMessages
public void sendMessages(ServiceBusMessageBatch batch, ServiceBusTransactionContext transactionContext)
Sendet einen Nachrichtenbatch an die Azure Service Bus Entität, mit der der Absender verbunden ist.
Parameters:
sendMessages
public void sendMessages(Iterable
Sendet eine Gruppe von ServiceBusMessage an eine Service Bus-Warteschlange oder ein Service Bus-Thema mithilfe eines Batchansatzes. Wenn die Größe von Nachrichten die maximale Größe eines einzelnen Batches überschreitet, wird eine Ausnahme ausgelöst, und der Sendevorgang schlägt fehl. Standardmäßig ist die Nachrichtengröße der maximal zulässige Betrag für den Link.
Parameters:
sendMessages
public void sendMessages(Iterable
Sendet eine Gruppe von ServiceBusMessage an eine Service Bus-Warteschlange oder ein Service Bus-Thema mithilfe eines Batchansatzes. Wenn die Größe von Nachrichten die maximale Größe eines einzelnen Batches überschreitet, wird eine Ausnahme ausgelöst, und der Sendevorgang schlägt fehl. Standardmäßig ist die Nachrichtengröße der maximal zulässige Betrag für den Link.
Parameters:
Gilt für:
Azure SDK for Java