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 |
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 1.
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 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.Copyright © 2021 Microsoft Corporation. All rights reserved.