ServiceBusSessionProcessor Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 |
Identifier |
Obtiene el identificador utilizado para identificar este cliente de procesador. Si |
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
Azure SDK for .NET