Partilhar via


ServiceBusSessionProcessor Classe

Definição

O ServiceBusSessionProcessor fornece uma abstração em torno de um conjunto de que permite o uso de ServiceBusSessionReceiver um modelo baseado em evento para processamento recebido ServiceBusReceivedMessage. Ele é construído chamando CreateSessionProcessor(String, ServiceBusSessionProcessorOptions). 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 ServiceBusSessionProcessor : IAsyncDisposable
type ServiceBusSessionProcessor = class
    interface IAsyncDisposable
Public Class ServiceBusSessionProcessor
Implements IAsyncDisposable
Herança
ServiceBusSessionProcessor
Implementações

Comentários

O ServiceBusSessionProcessor é 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() no associado ServiceBusClient , pois o aplicativo está sendo desligado, garantirá que os recursos de rede e outros objetos não gerenciados usados pelo processador sejam limpos corretamente.

Construtores

ServiceBusSessionProcessor()

Inicializa uma nova instância da ServiceBusSessionProcessor classe para simulação.

ServiceBusSessionProcessor(ServiceBusClient, String, ServiceBusSessionProcessorOptions)

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

ServiceBusSessionProcessor(ServiceBusClient, String, String, ServiceBusSessionProcessorOptions)

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

Propriedades

AutoCompleteMessages

Obtém um valor que indica se o processador deve concluir automaticamente as mensagens depois que o manipulador de mensagens concluir o processamento. 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 o Identificador usado para identificar esse cliente processador. Se null ou estiver vazio, um valor exclusivo aleatório será usado.

InnerProcessor

O ServiceBusProcessor para o qual o processador de sessão delega. Isso pode ser substituído para fins de teste.

IsClosed

Indica se isso ServiceBusSessionProcessor 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 de sessão será renovado automaticamente.

MaxConcurrentCallsPerSession

Obtém o número máximo de chamadas para o retorno de chamada que o processador iniciará por sessão. Portanto, o número total de retornos de chamada será igual a MaxConcurrentSessions * MaxConcurrentCallsPerSession. O valor padrão é 1.

MaxConcurrentSessions

Obtém o número máximo de sessões que serão processadas simultaneamente pelo processador. O valor padrão é 8.

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.

SessionIdleTimeout

Obtém 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. Se não for especificado, o TryTimeout será usado.

Métodos

CloseAsync(CancellationToken)

Executa a tarefa necessária para limpo recursos usados pelo ServiceBusSessionProcessor.

DisposeAsync()

Executa a tarefa necessária para limpo recursos usados pelo ServiceBusSessionProcessor. 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.

OnProcessSessionMessageAsync(ProcessSessionMessageEventArgs)

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.

OnSessionClosingAsync(ProcessSessionEventArgs)

Invoca o manipulador de eventos de fechamento de sessão quando uma sessão está prestes a ser fechada para processamento. Esse método pode ser substituído para gerar um evento manualmente para fins de teste.

OnSessionInitializingAsync(ProcessSessionEventArgs)

Invoca o manipulador de eventos abertos da sessão quando uma nova sessão está prestes a ser processada. 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á lançado.

StopProcessingAsync(CancellationToken)

Sinaliza ao 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 andamento serão aguardados e esse método não retornará até que todos os manipuladores de mensagens em andamento 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, 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 pelo processamento de mensagens recebidas da Fila ou assinatura. A implementação é obrigatória.

SessionClosingAsync

Manipulador opcional que pode ser definido para ser notificado quando uma sessão está prestes a ser fechada para processamento. Isso significa que a chamada mais recente ReceiveMessageAsync(Nullable<TimeSpan>, CancellationToken) atingiu o tempo limite ou que ReleaseSession() foi chamada no ProcessMessageAsync manipulador.

SessionInitializingAsync

Manipulador opcional que pode ser definido para ser notificado quando uma nova sessão está prestes a ser processada.

Aplica-se a