public final class ServiceBusClientBuilder.ServiceBusProcessorClientBuilder extends Object
ServiceBusProcessorClient to consume messages from a Service Bus entity.
ServiceBusProcessorClients provides a push-based mechanism that notifies
the message processing callback when a message is received or the error handle when an error is observed. To
create an instance, therefore, configuring the two callbacks - ServiceBusClientBuilder.ServiceBusProcessorClientBuilder.processMessage(Consumer) and
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder.processError(Consumer) are necessary. By default, a ServiceBusProcessorClient is configured
with auto-completion and auto-lock renewal capabilities.
Sample code to instantiate a processor client
Consumer<ServiceBusReceivedMessageContext> onMessage = context -> {
ServiceBusReceivedMessage message = context.getMessage();
System.out.printf("Processing message. Sequence #: %s. Contents: %s%n",
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());
}
};
// Retrieve 'connectionString/queueName' from your configuration.
ServiceBusProcessorClient processor = new ServiceBusClientBuilder()
.connectionString(connectionString)
.processor()
.queueName(queueName)
.processMessage(onMessage)
.processError(onError)
.buildProcessorClient();
// Start the processor in the background
processor.start();
ServiceBusProcessorClient| Modifier and Type | Method and Description |
|---|---|
ServiceBusProcessorClient |
buildProcessorClient()
Creates Service Bus message processor responsible for reading
messages from a specific queue or subscription. |
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder |
disableAutoComplete()
Disables auto-complete and auto-abandon of received messages.
|
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder |
maxAutoLockRenewDuration(Duration maxAutoLockRenewDuration)
Sets the amount of time to continue auto-renewing the lock.
|
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder |
maxConcurrentCalls(int maxConcurrentCalls)
Max concurrent messages that this processor should process.
|
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder |
prefetchCount(int prefetchCount)
Sets the prefetch count of the processor.
|
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder |
processError(Consumer<ServiceBusErrorContext> processError)
The error handler for the processor which will be invoked in the event of an error while receiving messages.
|
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder |
processMessage(Consumer<ServiceBusReceivedMessageContext> processMessage)
The message processing callback for the processor which will be executed when a message is received.
|
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder |
queueName(String queueName)
Sets the name of the queue to create a processor for.
|
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder |
receiveMode(ServiceBusReceiveMode receiveMode)
Sets the receive mode for the processor.
|
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder |
subQueue(SubQueue subQueue)
Sets the type of the
SubQueue to connect to. |
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder |
subscriptionName(String subscriptionName)
Sets the name of the subscription in the topic to listen to.
|
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder |
topicName(String topicName)
Sets the name of the topic.
|
public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder prefetchCount(int prefetchCount)
PEEK_LOCK and
RECEIVE_AND_DELETE modes the default value is 0.
Prefetch speeds up the message flow by aiming to have a message readily available for local retrieval when
and before the application starts the processor.
Setting a non-zero value will prefetch that number of messages. Setting the value to zero turns prefetch off.prefetchCount - The prefetch count.ServiceBusClientBuilder.ServiceBusProcessorClientBuilder object.public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder queueName(String queueName)
queueName - Name of the queue.ServiceBusClientBuilder.ServiceBusProcessorClientBuilder object.public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder receiveMode(ServiceBusReceiveMode receiveMode)
receiveMode - Mode for receiving messages.ServiceBusClientBuilder.ServiceBusProcessorClientBuilder object.public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder subQueue(SubQueue subQueue)
SubQueue to connect to. Azure Service Bus queues and subscriptions provide a
secondary sub-queue, called a dead-letter queue (DLQ).subQueue - The type of the sub queue.ServiceBusClientBuilder.ServiceBusProcessorClientBuilder object.A queuename or #topicName A topic name should be set as well.,
SubQueuepublic ServiceBusClientBuilder.ServiceBusProcessorClientBuilder subscriptionName(String subscriptionName)
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder.topicName(String) must also be set.
subscriptionName - Name of the subscription.ServiceBusClientBuilder.ServiceBusProcessorClientBuilder object.A topic name should be set as well.public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder topicName(String topicName)
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder.subscriptionName(String) must also be set.topicName - Name of the topic.ServiceBusClientBuilder.ServiceBusProcessorClientBuilder object.A subscription name should be set as well.public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder processMessage(Consumer<ServiceBusReceivedMessageContext> processMessage)
processMessage - The message processing consumer that will be executed when a message is received.ServiceBusClientBuilder.ServiceBusProcessorClientBuilder object.public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder processError(Consumer<ServiceBusErrorContext> processError)
processError - The error handler which will be executed when an error occurs.ServiceBusClientBuilder.ServiceBusProcessorClientBuilder objectpublic ServiceBusClientBuilder.ServiceBusProcessorClientBuilder maxAutoLockRenewDuration(Duration maxAutoLockRenewDuration)
Duration.ZERO or null
disables auto-renewal. For RECEIVE_AND_DELETE mode,
auto-renewal is disabled.maxAutoLockRenewDuration - the amount of time to continue auto-renewing the lock. Duration.ZERO
or null indicates that auto-renewal is disabled.ServiceBusClientBuilder.ServiceBusProcessorClientBuilder object.IllegalArgumentException - If {code maxAutoLockRenewDuration} is negative.public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder maxConcurrentCalls(int maxConcurrentCalls)
maxConcurrentCalls - max concurrent messages that this processor should process.ServiceBusClientBuilder.ServiceBusProcessorClientBuilder object.IllegalArgumentException - if the maxConcurrentCalls is set to a value less than 1.public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder disableAutoComplete()
completed. If an error happens when
the message is processed, it is abandoned.ServiceBusClientBuilder.ServiceBusProcessorClientBuilder object.public ServiceBusProcessorClient buildProcessorClient()
messages from a specific queue or subscription.ServiceBusProcessorClient that processes messages from a queue or subscription.IllegalStateException - if queueName or topicName are not set or, both of these fields are set. It is also thrown if the Service Bus connectionString contains an EntityPath that does not match one set in
queueName or topicName. Lastly, if a topicName is set, but subscriptionName is not.IllegalArgumentException - Queue or topic name are not set via queueName() or topicName(), respectively.NullPointerException - if the ServiceBusClientBuilder.ServiceBusProcessorClientBuilder.processMessage(Consumer) or ServiceBusClientBuilder.ServiceBusProcessorClientBuilder.processError(Consumer)
callbacks are not set.Visit the Azure for Java Developers site for more Java documentation, including quick starts, tutorials, and code samples.