PooledQueueCache<TQueueMessage,TCachedMessage> 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í.
PooledQueueCache es una memoria caché que está pensada para servir como caché de mensajes en un IQueueCache. Es capaz de almacenar un gran número de mensajes (gigs worth of messages) durante largos períodos de tiempo (minutos a indefinidos), al tiempo que incurre en un impacto mínimo de rendimiento debido a la recolección de elementos no utilizados. Esta caché agrupada asigna memoria y nunca la libera. Mantiene los recursos liberados disponibles en los grupos que permanecen en uso de la aplicación a través de la vida útil del servicio. Esto significa que estos objetos van a gen2, se compactan y luego permanecen allí. Esto es relativamente barato, ya que el único costo que incurren ahora es el costo de comprobar si deben liberarse en cada ciclo de recolección. Dado que esta memoria caché usa pequeños números de objetos grandes con gráficos de objetos relativamente simples, son menos costosos de comprobar después grandes cantidades de objetos más pequeños con gráficos de objetos más complejos. Por motivos de rendimiento, esta memoria caché está diseñada para alinearse más estrechamente con los datos específicos de la cola. Esto es, en parte, por qué, a diferencia de SimpleQueueCache, esta memoria caché no implementa IQueueCache. Está pensado para usarse en implementaciones específicas de la cola de IQueueCache.
public class PooledQueueCache<TQueueMessage,TCachedMessage> : Orleans.Providers.Streams.Common.IPurgeObservable<TCachedMessage> where TCachedMessage : struct
type PooledQueueCache<'QueueMessage, 'CachedMessage (requires 'CachedMessage : struct)> = class
interface IPurgeObservable<'CachedMessage (requires 'CachedMessage : struct)>
Public Class PooledQueueCache(Of TQueueMessage, TCachedMessage)
Implements IPurgeObservable(Of TCachedMessage)
Parámetros de tipo
- TQueueMessage
Datos específicos de la cola
- TCachedMessage
Estructura almacenada en caché estrechamente empaquetada. Solo debe contener tipos de valor.
- Herencia
-
PooledQueueCache<TQueueMessage,TCachedMessage>
- Implementaciones
Constructores
PooledQueueCache<TQueueMessage,TCachedMessage>(ICacheDataAdapter<TQueueMessage, TCachedMessage>, ICacheDataComparer<TCachedMessage>, ILogger, ICacheMonitor, Nullable<TimeSpan>) |
La caché de cola agrupada es una caché de mensajes que obtiene el recurso de un grupo. |
PooledQueueCache<TQueueMessage,TCachedMessage>(ICacheDataAdapter<TQueueMessage, TCachedMessage>, ICacheDataComparer<TCachedMessage>, Logger, ICacheMonitor, Nullable<TimeSpan>) |
La caché de cola agrupada es una caché de mensajes que obtiene el recurso de un grupo. |
Propiedades
IsEmpty |
Indica si la memoria caché está vacía. |
ItemCount |
Recuento de mensajes almacenados en caché |
Newest |
Mensaje almacenado en caché agregado más recientemente |
Oldest |
Mensaje más antiguo en la memoria caché |
Métodos
Add(List<TQueueMessage>, DateTime) |
Agregar una lista de mensajes de cola a la memoria caché |
GetCursor(IStreamIdentity, StreamSequenceToken) |
Adquiere un cursor para enumerar los mensajes de la memoria caché en el sequenceToken proporcionado, filtrado en la secuencia especificada. |
RemoveOldestMessage() |
Quite el mensaje más antiguo de la memoria caché, quite también el bloque más antiguo si el bloque está vacío. |
TryGetNextMessage(Object, IBatchContainer) |
Adquiere el siguiente mensaje en la memoria caché en el cursor proporcionado. |