Condividi tramite


PooledQueueCache<TQueueMessage,TCachedMessage> Classe

Definizione

PooledQueueCache è una cache che deve essere usata come cache dei messaggi in un IQueueCache. È in grado di archiviare un numero elevato di messaggi (gigs vale la pena di messaggi) per lunghi periodi di tempo (minuti a indefiniti), incorrendo in un impatto minimo sulle prestazioni dovuto a Garbage Collection. Questa cache in pool alloca memoria e non la rilascia mai. Mantiene le risorse liberate disponibili nei pool che rimangono in uso nell'applicazione per tutta la durata del servizio. Ciò significa che questi oggetti vanno a gen2, sono compattati e quindi rimangono lì. Questo è relativamente economico, poiché l'unico costo che ora comporta è il costo del controllo per verificare se devono essere liberati in ogni ciclo di raccolta. Poiché questa cache usa un numero ridotto di oggetti di grandi dimensioni con grafici a oggetti relativamente semplici, sono meno costosi per controllare quindi un numero elevato di oggetti più piccoli con grafici a oggetti più complessi. Per motivi di prestazioni, questa cache è progettata per allinearsi più strettamente ai dati specifici della coda. Questo è, in parte, il motivo per cui, a differenza di SimpleQueueCache, questa cache non implementa IQueueCache. È progettato per essere usato nelle implementazioni specifiche della coda di 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)

Parametri di tipo

TQueueMessage

Dati specifici della coda

TCachedMessage

Struttura memorizzata nella cache strettamente compressa. Deve contenere solo tipi valore.

Ereditarietà
PooledQueueCache<TQueueMessage,TCachedMessage>
Implementazioni

Costruttori

PooledQueueCache<TQueueMessage,TCachedMessage>(ICacheDataAdapter<TQueueMessage, TCachedMessage>, ICacheDataComparer<TCachedMessage>, ILogger, ICacheMonitor, Nullable<TimeSpan>)

La cache delle code in pool è una cache di messaggi che ottiene la risorsa da un pool

PooledQueueCache<TQueueMessage,TCachedMessage>(ICacheDataAdapter<TQueueMessage, TCachedMessage>, ICacheDataComparer<TCachedMessage>, Logger, ICacheMonitor, Nullable<TimeSpan>)

La cache delle code in pool è una cache di messaggi che ottiene la risorsa da un pool

Proprietà

IsEmpty

Indica se la cache è vuota

ItemCount

Conteggio messaggi memorizzati nella cache

Newest

Messaggio memorizzato nella cache aggiunto più di recente

Oldest

Messaggio meno recente nella cache

Metodi

Add(List<TQueueMessage>, DateTime)

Aggiungere un elenco di messaggi della coda alla cache

GetCursor(IStreamIdentity, StreamSequenceToken)

Acquisisce un cursore per enumerare i messaggi nella cache in corrispondenza della sequenza specificata, filtrati sul flusso specificato.

RemoveOldestMessage()

Rimuovere il messaggio meno recente nella cache, rimuovere anche il blocco meno recente se il blocco è vuoto

TryGetNextMessage(Object, IBatchContainer)

Acquisisce il messaggio successivo nella cache in corrispondenza del cursore specificato

Si applica a