ServiceBusSessionProcessor Clase

Definición

ServiceBusSessionProcessor proporciona una abstracción en torno a un conjunto de ServiceBusSessionReceiver que permite usar un modelo basado en eventos para el procesamiento recibidoServiceBusReceivedMessage. Se construye mediante una llamada a CreateSessionProcessor(String, ServiceBusSessionProcessorOptions). El controlador de mensajes se especifica con la ProcessMessageAsync propiedad . El controlador de errores se especifica con la ProcessErrorAsync propiedad . Para iniciar el procesamiento después de especificar los controladores, llame a StartProcessingAsync(CancellationToken).

public class ServiceBusSessionProcessor : IAsyncDisposable
type ServiceBusSessionProcessor = class
    interface IAsyncDisposable
Public Class ServiceBusSessionProcessor
Implements IAsyncDisposable
Herencia
ServiceBusSessionProcessor
Implementaciones

Comentarios

ServiceBusSessionProcessor es seguro almacenar en caché y usar durante la vigencia de una aplicación o hasta que se elimine el ServiceBusClient objeto que creó. Se recomienda almacenar en caché el procesador cuando la aplicación procesa los mensajes con regularidad. El remitente es responsable de garantizar un uso eficaz de la red, la CPU y la memoria. Al llamar DisposeAsync() a en el asociado ServiceBusClient a medida que se cierra la aplicación, se asegurará de que los recursos de red y otros objetos no administrados usados por el procesador se limpien correctamente.

Constructores

ServiceBusSessionProcessor()

Inicializa una nueva instancia de la ServiceBusSessionProcessor clase para simular.

ServiceBusSessionProcessor(ServiceBusClient, String, ServiceBusSessionProcessorOptions)

Inicializa una nueva instancia de la ServiceBusSessionProcessor clase para su uso con tipos derivados.

ServiceBusSessionProcessor(ServiceBusClient, String, String, ServiceBusSessionProcessorOptions)

Inicializa una nueva instancia de la ServiceBusSessionProcessor clase para su uso con tipos derivados.

Propiedades

AutoCompleteMessages

Obtiene un valor que indica si el procesador debe completar automáticamente los mensajes después de que el controlador de mensajes haya completado el procesamiento. Si el controlador de mensajes desencadena una excepción, el mensaje no se completará automáticamente.

EntityPath

Obtiene la ruta de acceso de la entidad de Service Bus a la que está conectado el procesador, específico del espacio de nombres de Service Bus que lo contiene.

FullyQualifiedNamespace

Obtiene el espacio de nombres completo de Service Bus al que está asociado el receptor. Es probable que sea similar a {yournamespace}.servicebus.windows.net.

Identifier

Obtiene el identificador utilizado para identificar este cliente de procesador. Si null o está vacío, se usará un valor único aleatorio.

InnerProcessor

al ServiceBusProcessor que se delega el procesador de sesión. Esto se puede invalidar con fines de prueba.

IsClosed

Indica si se ServiceBusSessionProcessor ha cerrado o no.

IsProcessing

Obtiene si este procesador está procesando o no los mensajes.

MaxAutoLockRenewalDuration

Obtiene la duración máxima en la que se renovará automáticamente el bloqueo de sesión.

MaxConcurrentCallsPerSession

Obtiene el número máximo de llamadas a la devolución de llamada que iniciará el procesador por sesión. Por lo tanto, el número total de devoluciones de llamada será igual a MaxConcurrentSessions * MaxConcurrentCallsPerSession. El valor predeterminado es 1.

MaxConcurrentSessions

Obtiene el número máximo de sesiones que el procesador procesará simultáneamente. El valor predeterminado es 8.

PrefetchCount

Obtiene el número de mensajes que se solicitarán diligentemente desde colas o suscripciones durante el procesamiento. Esto está pensado para ayudar a maximizar el rendimiento al permitir que el procesador reciba de una caché local en lugar de esperar una solicitud de servicio.

ReceiveMode

Obtiene el ReceiveMode objeto utilizado para especificar cómo se reciben los mensajes. El valor predeterminado es el modo PeekLock.

SessionIdleTimeout

Obtiene la cantidad máxima de tiempo para esperar a que se reciba un mensaje para la sesión activa actualmente. Una vez transcurrido este tiempo, el procesador cerrará la sesión e intentará procesar otra sesión. Si no se especifica, se usará .TryTimeout

Métodos

CloseAsync(CancellationToken)

Realiza la tarea necesaria para limpiar los recursos utilizados por .ServiceBusSessionProcessor

DisposeAsync()

Realiza la tarea necesaria para limpiar los recursos utilizados por .ServiceBusSessionProcessor Esto equivale a llamar a CloseAsync(CancellationToken).

OnProcessErrorAsync(ProcessErrorEventArgs)

Invoca el controlador de eventos de error cuando se ha producido un error durante el procesamiento. Este método se puede invalidar para generar un evento manualmente con fines de prueba.

OnProcessSessionMessageAsync(ProcessSessionMessageEventArgs)

Invoca el controlador de eventos de mensaje de proceso después de recibir un mensaje. Este método se puede invalidar para generar un evento manualmente con fines de prueba.

OnSessionClosingAsync(ProcessSessionEventArgs)

Invoca el controlador de eventos de cierre de sesión cuando una sesión está a punto de cerrarse para su procesamiento. Este método se puede invalidar para generar un evento manualmente con fines de prueba.

OnSessionInitializingAsync(ProcessSessionEventArgs)

Invoca al controlador de eventos abiertos de sesión cuando se va a procesar una nueva sesión. Este método se puede invalidar para generar un evento manualmente con fines de prueba.

StartProcessingAsync(CancellationToken)

Indica al procesador que empiece a procesar los mensajes. Si se llama a este método mientras el procesador ya está en ejecución, se produce una InvalidOperationException excepción .

StopProcessingAsync(CancellationToken)

Indica al procesador que detenga el procesamiento de la mensajería. Si se llama a este método mientras el procesador no se está ejecutando, no se realiza ninguna acción. Este método no cerrará los receptores subyacentes, pero hará que los receptores dejen de recibirse. Se esperará a los controladores de mensajes en curso y este método no volverá hasta que se hayan devuelto todos los controladores de mensajes en curso. Para cerrar los receptores subyacentes, CloseAsync(CancellationToken) se debe llamar a . Si CloseAsync(CancellationToken) se llama a , no se puede reiniciar el procesador. Si desea reanudar el procesamiento en algún momento después de llamar a este método, puede llamar a StartProcessingAsync(CancellationToken).

UpdateConcurrency(Int32, Int32)

Novedades la simultaneidad del procesador. Este método se puede usar para cambiar dinámicamente la simultaneidad de un procesador en ejecución.

UpdatePrefetchCount(Int32)

Novedades el recuento de capturas previas para el procesador. Este método se puede usar para cambiar dinámicamente el recuento de capturas previas de un procesador en ejecución.

Eventos

ProcessErrorAsync

Controlador responsable del procesamiento de excepciones no controladas iniciadas mientras se ejecuta este procesador. La implementación es obligatoria.

ProcessMessageAsync

El controlador responsable de procesar los mensajes recibidos de la cola o la suscripción. La implementación es obligatoria.

SessionClosingAsync

Controlador opcional que se puede establecer para recibir notificaciones cuando una sesión está a punto de cerrarse para su procesamiento. Esto significa que se agotó el tiempo de espera de la llamada más reciente ReceiveMessageAsync(Nullable<TimeSpan>, CancellationToken) o que ReleaseSession() se llamó en el ProcessMessageAsync controlador.

SessionInitializingAsync

Controlador opcional que se puede establecer para recibir una notificación cuando se va a procesar una nueva sesión.

Se aplica a