IMessageSender Interface

Implements

public interface IMessageSender
extends IMessageEntityClient

Represents a message sender that sends messages to Azure Service Bus.

Method Summary

Modifier and Type Method and Description
abstract void cancelScheduledMessage(long sequenceNumber)

Cancels the enqueuing of an already sent scheduled message, if it was not already enqueued.

abstract CompletableFuture<Void> cancelScheduledMessageAsync(long sequenceNumber)

Cancels the enqueuing of an already sent scheduled message, if it was not already enqueued.

abstract long scheduleMessage(IMessage message, Instant scheduledEnqueueTimeUtc)

Sends a scheduled message to the Azure Service Bus entity this sender is connected to.

abstract long scheduleMessage(IMessage message, Instant scheduledEnqueueTimeUtc, TransactionContext transaction)

Sends a scheduled message to the Azure Service Bus entity this sender is connected to.

abstract CompletableFuture<Long> scheduleMessageAsync(IMessage message, Instant scheduledEnqueueTimeUtc)

Sends a scheduled message to the Azure Service Bus entity this sender is connected to.

abstract CompletableFuture<Long> scheduleMessageAsync(IMessage message, Instant scheduledEnqueueTimeUtc, TransactionContext transaction)

Sends a scheduled message to the Azure Service Bus entity this sender is connected to.

abstract void send(IMessage message)

Sends a message to the Azure Service Bus entity this sender is connected to.

abstract void send(IMessage message, TransactionContext transaction)

Sends a message to the Azure Service Bus entity this sender is connected to.

abstract CompletableFuture<Void> sendAsync(IMessage message)

Sends a message to the Azure Service Bus entity this sender is connected to.

abstract CompletableFuture<Void> sendAsync(IMessage message, TransactionContext transaction)

Sends a message to the Azure Service Bus entity this sender is connected to.

abstract void sendBatch(Collection<? extends IMessage> messages)

Sends a batch of messages to the Azure Service Bus entity this sender is connected to.

abstract void sendBatch(Collection<? extends IMessage> messages, TransactionContext transaction)

Sends a batch of messages to the Azure Service Bus entity this sender is connected to.

abstract CompletableFuture<Void> sendBatchAsync(Collection<? extends IMessage> messages)

Sends a batch of messages to the Azure Service Bus entity this sender is connected to.

abstract CompletableFuture<Void> sendBatchAsync(Collection<? extends IMessage> messages, TransactionContext transaction)

Sends a batch of messages to the Azure Service Bus entity this sender is connected to.

Method Details

cancelScheduledMessage

public abstract void cancelScheduledMessage(long sequenceNumber)

Cancels the enqueuing of an already sent scheduled message, if it was not already enqueued. This method blocks until the message is sent to the entity. Calling this method is equivalent to calling cancelScheduledMessageAsync(sequenceNumber).get(). For better performance, use async methods.

Parameters:

sequenceNumber - sequence number of the scheduled message

Throws:

InterruptedException

- if the current thread was interrupted while waiting
ServiceBusException - if the current thread was interrupted while waiting

cancelScheduledMessageAsync

public abstract CompletableFuture cancelScheduledMessageAsync(long sequenceNumber)

Cancels the enqueuing of an already sent scheduled message, if it was not already enqueued. This is an asynchronous method returning a CompletableFuture which completes when the message is cancelled.

Parameters:

sequenceNumber - sequence number of the scheduled message

Returns:

a CompletableFuture representing the pending cancellation

scheduleMessage

public abstract long scheduleMessage(IMessage message, Instant scheduledEnqueueTimeUtc)

Sends a scheduled message to the Azure Service Bus entity this sender is connected to. A scheduled message is enqueued and made available to receivers only at the scheduled enqueue time. This method blocks until the message is sent to the entity. Calling this method is equivalent to calling scheduleMessageAsync(message, scheduledEnqueueTimeUtc).get(). For better performance, use async methods.

Parameters:

message - message to be sent to the entity
scheduledEnqueueTimeUtc - instant at which the message should be enqueued in the entity

Returns:

sequence number of the scheduled message

Throws:

InterruptedException

- if the current thread was interrupted while waiting
ServiceBusException - if the current thread was interrupted while waiting

scheduleMessage

public abstract long scheduleMessage(IMessage message, Instant scheduledEnqueueTimeUtc, TransactionContext transaction)

Sends a scheduled message to the Azure Service Bus entity this sender is connected to. A scheduled message is enqueued and made available to receivers only at the scheduled enqueue time. This method blocks until the message is sent to the entity. Calling this method is equivalent to calling scheduleMessageAsync(message, scheduledEnqueueTimeUtc).get(). For better performance, use async methods.

Parameters:

message - message to be sent to the entity
scheduledEnqueueTimeUtc - instant at which the message should be enqueued in the entity
transaction - TransactionContext which this operation should enlist to.

Returns:

sequence number of the scheduled message

Throws:

InterruptedException

- if the current thread was interrupted while waiting
ServiceBusException - if the current thread was interrupted while waiting

scheduleMessageAsync

public abstract CompletableFuture scheduleMessageAsync(IMessage message, Instant scheduledEnqueueTimeUtc)

Sends a scheduled message to the Azure Service Bus entity this sender is connected to. A scheduled message is enqueued and made available to receivers only at the scheduled enqueue time. This is an asynchronous method returning a CompletableFuture which completes when the message is sent to the entity. The CompletableFuture, on completion, returns the sequence number of the scheduled message which can be used to cancel the scheduling of the message.

Parameters:

message - message to be sent to the entity
scheduledEnqueueTimeUtc - instant at which the message should be enqueued in the entity

Returns:

a CompletableFuture representing the pending send, which returns the sequence number of the scheduled message. This sequence number can be used to cancel the scheduling of the message.

scheduleMessageAsync

public abstract CompletableFuture scheduleMessageAsync(IMessage message, Instant scheduledEnqueueTimeUtc, TransactionContext transaction)

Sends a scheduled message to the Azure Service Bus entity this sender is connected to. A scheduled message is enqueued and made available to receivers only at the scheduled enqueue time. This is an asynchronous method returning a CompletableFuture which completes when the message is sent to the entity. The CompletableFuture, on completion, returns the sequence number of the scheduled message which can be used to cancel the scheduling of the message.

Parameters:

message - message to be sent to the entity
scheduledEnqueueTimeUtc - instant at which the message should be enqueued in the entity
transaction - TransactionContext which this operation should enlist to.

Returns:

a CompletableFuture representing the pending send, which returns the sequence number of the scheduled message. This sequence number can be used to cancel the scheduling of the message.

send

public abstract void send(IMessage message)

Sends a message to the Azure Service Bus entity this sender is connected to. This method blocks until the message is sent to the entity. Calling this method is equivalent to calling sendAsync(message).get(). For better performance, use async methods.

Parameters:

message - message to be sent to the entity

Throws:

InterruptedException

- if the current thread was interrupted while waiting
ServiceBusException - if the current thread was interrupted while waiting

send

public abstract void send(IMessage message, TransactionContext transaction)

Sends a message to the Azure Service Bus entity this sender is connected to. This method blocks until the message is sent to the entity. Calling this method is equivalent to calling sendAsync(message).get(). For better performance, use async methods.

Parameters:

message - message to be sent to the entity
transaction - TransactionContext which this operation should enlist to.

Throws:

InterruptedException

- if the current thread was interrupted while waiting
ServiceBusException - if the current thread was interrupted while waiting

sendAsync

public abstract CompletableFuture sendAsync(IMessage message)

Sends a message to the Azure Service Bus entity this sender is connected to. This is an asynchronous method returning a CompletableFuture which completes when the message is sent to the entity.

Parameters:

message - message to be sent to the entity

Returns:

a CompletableFuture representing the pending send

sendAsync

public abstract CompletableFuture sendAsync(IMessage message, TransactionContext transaction)

Sends a message to the Azure Service Bus entity this sender is connected to. This is an asynchronous method returning a CompletableFuture which completes when the message is sent to the entity.

Parameters:

message - message to be sent to the entity
transaction - TransactionContext which this operation should enlist to.

Returns:

a CompletableFuture representing the pending send

sendBatch

public abstract void sendBatch(Collection messages)

Sends a batch of messages to the Azure Service Bus entity this sender is connected to. This method blocks until the batch is sent to the entity. Calling this method is equivalent to calling sendBatchAsync(messages).get(). For better performance, use async methods. When called on partitioned entities, messages meant for different partitions cannot be batched together.

Parameters:

messages - collection of messages to be sent to the entity

Throws:

InterruptedException

- if the current thread was interrupted while waiting
ServiceBusException - if the current thread was interrupted while waiting

sendBatch

public abstract void sendBatch(Collection messages, TransactionContext transaction)

Sends a batch of messages to the Azure Service Bus entity this sender is connected to. This method blocks until the batch is sent to the entity. Calling this method is equivalent to calling sendBatchAsync(messages).get(). For better performance, use async methods. When called on partitioned entities, messages meant for different partitions cannot be batched together.

Parameters:

messages - collection of messages to be sent to the entity
transaction - TransactionContext which this operation should enlist to.

Throws:

InterruptedException

- if the current thread was interrupted while waiting
ServiceBusException - if the current thread was interrupted while waiting

sendBatchAsync

public abstract CompletableFuture sendBatchAsync(Collection messages)

Sends a batch of messages to the Azure Service Bus entity this sender is connected to. This is an asynchronous method returning a CompletableFuture which completes when the batch is sent to the entity. When called on partitioned entities, messages meant for different partitions cannot be batched together.

Parameters:

messages - collection of messages to be sent to the entity

Returns:

a CompletableFuture representing the pending send

sendBatchAsync

public abstract CompletableFuture sendBatchAsync(Collection messages, TransactionContext transaction)

Sends a batch of messages to the Azure Service Bus entity this sender is connected to. This is an asynchronous method returning a CompletableFuture which completes when the batch is sent to the entity. When called on partitioned entities, messages meant for different partitions cannot be batched together.

Parameters:

messages - collection of messages to be sent to the entity
transaction - TransactionContext which this operation should enlist to.

Returns:

a CompletableFuture representing the pending send

Applies to