Compartilhar via


ServiceBusProcessor Classe

Definição

O ServiceBusProcessor fornece uma abstração em torno de um conjunto de que permite o uso de ServiceBusReceiver um modelo baseado em eventos para processamento recebido ServiceBusReceivedMessage. Ele é construído chamando CreateProcessor(String, ServiceBusProcessorOptions). O manipulador de mensagens é especificado com a ProcessMessageAsync propriedade . O manipulador de erros é especificado com a ProcessErrorAsync propriedade . Para iniciar o processamento depois que os manipuladores tiverem sido especificados, chame StartProcessingAsync(CancellationToken).

public class ServiceBusProcessor : IAsyncDisposable
type ServiceBusProcessor = class
    interface IAsyncDisposable
Public Class ServiceBusProcessor
Implements IAsyncDisposable
Herança
ServiceBusProcessor
Implementações

Comentários

O ServiceBusProcessor é seguro para armazenar em cache e usar durante o tempo de vida de um aplicativo ou até que o ServiceBusClient pelo qual ele foi criado seja descartado. O cache do processador é recomendado quando o aplicativo está processando mensagens regularmente. O remetente é responsável por garantir o uso eficiente de rede, CPU e memória. Chamar DisposeAsync() o associado ServiceBusClient como o aplicativo está sendo desligado garantirá que os recursos de rede e outros objetos não gerenciados usados pelo processador sejam limpos corretamente.

Construtores

ServiceBusProcessor()

Inicializa uma nova instância da ServiceBusProcessor classe para zombar.

ServiceBusProcessor(ServiceBusClient, String, ServiceBusProcessorOptions)

Inicializa uma nova instância da ServiceBusProcessor classe para uso com tipos derivados.

ServiceBusProcessor(ServiceBusClient, String, String, ServiceBusProcessorOptions)

Inicializa uma nova instância da ServiceBusProcessor classe para uso com tipos derivados.

Propriedades

AutoCompleteMessages

Obtém um valor que indica se o processador deve concluir automaticamente as mensagens após o processamento concluído pelo manipulador de mensagens. Se o manipulador de mensagens disparar uma exceção, a mensagem não será concluída automaticamente.

EntityPath

Obtém o caminho da entidade do Barramento de Serviço à qual o processador está conectado, específico ao namespace do Barramento de Serviço que o contém.

FullyQualifiedNamespace

Obtém o namespace do Barramento de Serviço totalmente qualificado ao qual o receptor está associado. É provável que isso seja semelhante a {yournamespace}.servicebus.windows.net.

Identifier

Obtém a ID usada para identificar esse processador. Isso pode ser usado para correlacionar logs e exceções.

IsClosed

Indica se isso ServiceBusProcessor foi ou não fechado.

IsProcessing

Obtém se esse processador está processando ou não mensagens no momento.

MaxAutoLockRenewalDuration

Obtém a duração máxima dentro da qual o bloqueio será renovado automaticamente. Esse valor deve ser maior do que a duração de bloqueio de mensagem mais longa; por exemplo, a Propriedade LockDuration.

MaxConcurrentCalls

Obtém o número máximo de chamadas simultâneas para o ProcessMessageAsync manipulador de mensagens que o processador deve iniciar.

PrefetchCount

Obtém o número de mensagens que serão solicitadas ansiosamente de Filas ou Assinaturas durante o processamento. Isso se destina a ajudar a maximizar a taxa de transferência, permitindo que o processador receba de um cache local em vez de aguardar uma solicitação de serviço.

ReceiveMode

Obtém o ReceiveMode usado para especificar como as mensagens são recebidas. O padrão é o modo PeekLock.

Métodos

CloseAsync(CancellationToken)

Executa a tarefa necessária para limpo recursos usados pelo ServiceBusProcessor. Todos os manipuladores de mensagens em voo serão aguardados. Depois que todo o tratamento de mensagens for concluído, os links subjacentes serão fechados. Após esse ponto, o método retornará. Isso é equivalente a chamar DisposeAsync().

DisposeAsync()

Executa a tarefa necessária para limpo recursos usados pelo ServiceBusProcessor. Todos os manipuladores de mensagens em voo serão aguardados. Depois que todo o tratamento de mensagens for concluído, os links subjacentes serão fechados. Após esse ponto, o método retornará. Isso é equivalente a chamar CloseAsync(CancellationToken).

OnProcessErrorAsync(ProcessErrorEventArgs)

Invoca o manipulador de eventos de erro quando ocorreu um erro durante o processamento. Esse método pode ser substituído para gerar um evento manualmente para fins de teste.

OnProcessMessageAsync(ProcessMessageEventArgs)

Invoca o manipulador de eventos de mensagem de processo depois que uma mensagem é recebida. Esse método pode ser substituído para gerar um evento manualmente para fins de teste.

StartProcessingAsync(CancellationToken)

Sinaliza o processador para começar a processar mensagens. Se esse método for chamado enquanto o processador já estiver em execução, um InvalidOperationException será gerado.

StopProcessingAsync(CancellationToken)

Sinaliza o processador para interromper o processamento de mensagens. Se esse método for chamado enquanto o processador não estiver em execução, nenhuma ação será executada. Esse método não fechará os receptores subjacentes, mas fará com que os receptores parem de receber. Todos os manipuladores de mensagens em voo serão aguardados e esse método não retornará até que todos os manipuladores de mensagens em voo tenham retornado. Para fechar os receptores subjacentes, CloseAsync(CancellationToken) deve ser chamado. Se CloseAsync(CancellationToken) for chamado, o processador não poderá ser reiniciado. Se você quiser retomar o processamento em algum momento depois de chamar esse método, poderá chamar StartProcessingAsync(CancellationToken).

UpdateConcurrency(Int32)

Atualizações a simultaneidade do processador. Esse método pode ser usado para alterar dinamicamente a simultaneidade de um processador em execução.

UpdatePrefetchCount(Int32)

Atualizações a contagem de pré-busca para o processador. Esse método pode ser usado para alterar dinamicamente a contagem de pré-busca de um processador em execução.

Eventos

ProcessErrorAsync

O manipulador responsável por processar exceções sem tratamento geradas enquanto esse processador está em execução. A implementação é obrigatória.

ProcessMessageAsync

O manipulador responsável por processar mensagens recebidas da Fila ou assinatura. A implementação é obrigatória.

Aplica-se a