PooledQueueCache<TQueueMessage,TCachedMessage> Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 |