Compartir a través de


PooledQueueCache<TQueueMessage,TCachedMessage> Clase

Definición

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.

Se aplica a