Condividi tramite


PooledQueueCache Classe

Definizione

PooledQueueCache è una cache destinata a fungere da cache dei messaggi in una IQueueCache. È in grado di archiviare grandi quantità di messaggi (gigs vale la pena di messaggi) per periodi di tempo estesi (minuti a tempo indefinito), mentre si verifica un impatto minimo sulle prestazioni a causa di Garbage Collection. Questa cache in pool alloca la memoria e non la rilascia mai. Mantiene le risorse liberate nei pool che rimangono in uso nell'applicazione attraverso la vita del servizio. Ciò significa che questi oggetti passano a gen2, sono compattati e quindi rimangono lì. Questo è relativamente economico, perché 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 piccoli numeri 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, perché, a differenza di SimpleQueueCache, questa cache non implementa IQueueCache. È destinato a essere usato nelle implementazioni specifiche della coda di IQueueCache.

public class PooledQueueCache : Orleans.Providers.Streams.Common.IPurgeObservable
type PooledQueueCache = class
    interface IPurgeObservable
Public Class PooledQueueCache
Implements IPurgeObservable
Ereditarietà
PooledQueueCache
Implementazioni

Costruttori

PooledQueueCache(ICacheDataAdapter, ILogger, ICacheMonitor, Nullable<TimeSpan>, Nullable<TimeSpan>)

Cache della coda in pool è una cache di messaggi che ottiene la risorsa da un pool

Proprietà

IsEmpty

Indica se la cache è vuota

ItemCount

Ottiene il conteggio dei messaggi memorizzati nella cache.

Newest

Ottiene il messaggio memorizzato nella cache più di recente aggiunto.

Oldest

Ottiene il messaggio meno recente nella cache.

Metodi

Add(List<CachedMessage>, DateTime)

Aggiungere un elenco di messaggi di coda alla cache

GetCursor(IStreamIdentity, StreamSequenceToken)

Acquisisce un cursore per enumerare i messaggi nella cache nella sequenza fornitaToken, filtrati nel flusso specificato.

GetCursor(StreamId, StreamSequenceToken)

Acquisisce un cursore per enumerare i messaggi nella cache nella sequenza fornitaToken, filtrati nel 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 nel cursore specificato

Si applica a