ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder Classe

  • java.lang.Object
    • com.azure.messaging.servicebus.ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder

public final class ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder

Construtor para criar ServiceBusProcessorClient para consumir mensagens de uma entidade do Barramento de Serviço baseada em sessão. ServiceBusProcessorClient processa mensagens e erros por meio de processMessage(Consumer<ServiceBusReceivedMessageContext> processMessage) e processError(Consumer<ServiceBusErrorContext> processError). Quando o processador termina de processar uma sessão, ele tenta buscar a próxima sessão a ser processada.

Por padrão, o processador:

Criar uma instância de um cliente de processador habilitado para sessão

// Function that gets called whenever a message is received.
 Consumer<ServiceBusReceivedMessageContext> onMessage = context -> {
     ServiceBusReceivedMessage message = context.getMessage();
     System.out.printf("Processing message. Session: %s, Sequence #: %s. Contents: %s%n",
         message.getSessionId(), 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());
     }
 };

 TokenCredential tokenCredential = new DefaultAzureCredentialBuilder().build();

 // Create the processor client via the builder and its sub-builder
 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 ServiceBusProcessorClient sessionProcessor = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, tokenCredential)
     .sessionProcessor()
     .queueName(sessionEnabledQueueName)
     .receiveMode(ServiceBusReceiveMode.PEEK_LOCK)
     .disableAutoComplete()
     .maxConcurrentSessions(2)
     .processMessage(onMessage)
     .processError(onError)
     .buildProcessorClient();

 // Starts the processor in the background. Control returns immediately.
 sessionProcessor.start();

 // Stop processor and dispose when done processing messages.
 sessionProcessor.stop();
 sessionProcessor.close();

Resumo do método

Modificador e tipo Método e descrição
ServiceBusProcessorClient buildProcessorClient()

Cria um processador do Barramento de Serviço com reconhecimento de sessão responsável pela leitura ServiceBusReceivedMessage de uma fila ou assinatura específica.

ServiceBusSessionProcessorClientBuilder disableAutoComplete()

Desabilita o preenchimento automático e o abandono automático das mensagens recebidas.

ServiceBusSessionProcessorClientBuilder maxAutoLockRenewDuration(Duration maxAutoLockRenewDuration)

Define a quantidade de tempo para continuar renovando automaticamente o bloqueio.

ServiceBusSessionProcessorClientBuilder maxConcurrentCalls(int maxConcurrentCalls)

Máximo de mensagens simultâneas que esse processador deve processar.

ServiceBusSessionProcessorClientBuilder maxConcurrentSessions(int maxConcurrentSessions)

Habilita a substituição do processamento de sessão processando no máximo maxConcurrentSessions.

ServiceBusSessionProcessorClientBuilder prefetchCount(int prefetchCount)

Define a contagem de pré-busca do processador.

ServiceBusSessionProcessorClientBuilder processError(Consumer<ServiceBusErrorContext> processError)

O manipulador de erros para o processador que será invocado em caso de erro ao receber mensagens.

ServiceBusSessionProcessorClientBuilder processMessage(Consumer<ServiceBusReceivedMessageContext> processMessage)

O retorno de chamada de processamento de mensagem para o processador que será executado quando uma mensagem for recebida.

ServiceBusSessionProcessorClientBuilder queueName(String queueName)

Define o nome da fila para a qual criar um processador.

ServiceBusSessionProcessorClientBuilder receiveMode(ServiceBusReceiveMode receiveMode)

Define o modo de recebimento para o processador.

ServiceBusSessionProcessorClientBuilder sessionIdleTimeout(Duration sessionIdleTimeout)

Define o tempo máximo de espera para que uma mensagem seja recebida para a sessão ativa no momento.

ServiceBusSessionProcessorClientBuilder subQueue(SubQueue subQueue)

Define o tipo do SubQueue ao qual se conectar.

ServiceBusSessionProcessorClientBuilder subscriptionName(String subscriptionName)

Define o nome da assinatura no tópico a ser escutado.

ServiceBusSessionProcessorClientBuilder topicName(String topicName)

Define o nome do tópico.

Métodos herdados de java.lang.Object

Detalhes do método

buildProcessorClient

public ServiceBusProcessorClient buildProcessorClient()

Cria um processador do Barramento de Serviço com reconhecimento de sessão responsável pela leitura ServiceBusReceivedMessage de uma fila ou assinatura específica.

Returns:

Um novo ServiceBusProcessorClient que recebe mensagens de uma fila ou assinatura.

disableAutoComplete

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder disableAutoComplete()

Desabilita o preenchimento automático e o abandono automático das mensagens recebidas. Por padrão, uma mensagem processada com êxito é complete(). Se ocorrer um erro quando a mensagem for processada, será abandon().

Returns:

O objeto ServiceBusSessionProcessorClientBuilder modificado.

maxAutoLockRenewDuration

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder maxAutoLockRenewDuration(Duration maxAutoLockRenewDuration)

Define a quantidade de tempo para continuar renovando automaticamente o bloqueio. Definir Duration#ZERO ou null desabilitar a renovação automática. Para RECEIVE_AND_DELETE o modo, a renovação automática está desabilitada.

Parameters:

maxAutoLockRenewDuration - a quantidade de tempo para continuar renovando automaticamente o bloqueio. Duration#ZERO ou null indica que a renovação automática está desabilitada.

Returns:

O objeto atualizado ServiceBusSessionProcessorClientBuilder.

maxConcurrentCalls

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder maxConcurrentCalls(int maxConcurrentCalls)

Máximo de mensagens simultâneas que esse processador deve processar.

Parameters:

maxConcurrentCalls - máximo de mensagens simultâneas que esse processador deve processar.

Returns:

O objeto atualizado ServiceBusSessionProcessorClientBuilder.

maxConcurrentSessions

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder maxConcurrentSessions(int maxConcurrentSessions)

Habilita a substituição do processamento de sessão processando no máximo maxConcurrentSessions.

Parameters:

maxConcurrentSessions - Número máximo de sessões simultâneas a serem processadas a qualquer momento.

Returns:

O objeto ServiceBusSessionProcessorClientBuilder modificado.

prefetchCount

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder prefetchCount(int prefetchCount)

Define a contagem de pré-busca do processador. Para modos PEEK_LOCK e RECEIVE_AND_DELETE , o valor padrão é 0. A pré-busca acelera o fluxo de mensagens com o objetivo de ter uma mensagem prontamente disponível para recuperação local quando e antes de o aplicativo iniciar o processador. Definir um valor diferente de zero irá pré-buscar esse número de mensagens. Definir o valor como zero desativa a pré-busca. O uso de um pré-busca não zero corre o risco de perder mensagens, mesmo que tenha melhor desempenho.

Parameters:

prefetchCount - A contagem de pré-busca.

Returns:

O objeto ServiceBusProcessorClientBuilder modificado.

processError

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder processError(Consumer processError)

O manipulador de erros para o processador que será invocado em caso de erro ao receber mensagens.

Parameters:

processError - O manipulador de erros que será executado quando ocorrer um erro.

Returns:

O objeto atualizado ServiceBusProcessorClientBuilder

processMessage

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder processMessage(Consumer processMessage)

O retorno de chamada de processamento de mensagem para o processador que será executado quando uma mensagem for recebida.

Parameters:

processMessage - O consumidor de processamento de mensagens que será executado quando uma mensagem for recebida.

Returns:

O objeto atualizado ServiceBusProcessorClientBuilder.

queueName

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder queueName(String queueName)

Define o nome da fila para a qual criar um processador.

Parameters:

queueName - Nome da fila.

Returns:

O objeto ServiceBusSessionProcessorClientBuilder modificado.

receiveMode

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder receiveMode(ServiceBusReceiveMode receiveMode)

Define o modo de recebimento para o processador.

Parameters:

receiveMode - Modo para receber mensagens.

Returns:

O objeto ServiceBusSessionProcessorClientBuilder modificado.

sessionIdleTimeout

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder sessionIdleTimeout(Duration sessionIdleTimeout)

Define o tempo máximo de espera para que uma mensagem seja recebida para a sessão ativa no momento. Decorrido esse tempo, o processador fechará a sessão e tentará processar outra sessão.

Depois que o processador entrega uma mensagem ao processMessage(Consumer<ServiceBusReceivedMessageContext> processMessage) manipulador, se o processador não puder receber a próxima mensagem da sessão porque não há nenhuma próxima mensagem na sessão ou o processamento da mensagem atual leva mais tempo do que o sessionIdleTimeout tempo limite da sessão. Para evitar a perda inadvertida de sessões, escolha um sessionIdleTimeout maior que o tempo de processamento de uma mensagem.

Se não for especificado, o AmqpRetryOptions#getTryTimeout() será usado.

Parameters:

sessionIdleTimeout - Tempo limite ocioso da sessão.

Returns:

O objeto atualizado ServiceBusSessionProcessorClientBuilder.

subQueue

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder subQueue(SubQueue subQueue)

Define o tipo do SubQueue ao qual se conectar. Barramento de Serviço do Azure filas e assinaturas fornecem uma sub-fila secundária, chamada DLQ (fila de mensagens mortas).

Parameters:

subQueue - O tipo da sub fila.

Returns:

O objeto ServiceBusSessionProcessorClientBuilder modificado.

subscriptionName

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder subscriptionName(String subscriptionName)

Define o nome da assinatura no tópico a ser escutado. topicName(String topicName) também deve ser definido.

Parameters:

subscriptionName - O nome da assinatura.

Returns:

O objeto ServiceBusSessionProcessorClientBuilder modificado.

topicName

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder topicName(String topicName)

Define o nome do tópico. subscriptionName(String subscriptionName) também deve ser definido.

Parameters:

topicName - Nome do tópico.

Returns:

O objeto ServiceBusSessionProcessorClientBuilder modificado.

Aplica-se a