Partager via


PooledQueueCache Classe

Définition

PooledQueueCache est un cache destiné à servir de cache de messages dans un IQueueCache. Il est capable de stocker un grand nombre de messages (gigs d’une valeur de messages) pendant des périodes prolongées (minutes à indéfinies), tout en encourant un niveau de performance minimal en raison du garbage collection. Ce cache mis en pool alloue de la mémoire et ne la libère jamais. Il maintient les ressources libérées disponibles dans les pools qui restent dans l’utilisation de l’application pendant toute la durée de vie du service. Cela signifie que ces objets passent à gen2, sont compactés, puis y restent. Cela est relativement bon marché, car le seul coût qu’ils encourent maintenant est le coût de la vérification pour voir s’ils doivent être libérés dans chaque cycle de collecte. Étant donné que ce cache utilise un petit nombre d’objets volumineux avec des graphiques d’objets relativement simples, ils sont moins coûteux à vérifier qu’un grand nombre d’objets plus petits avec des graphiques d’objets plus complexes. Pour des raisons de performances, ce cache est conçu pour s’aligner plus étroitement avec les données spécifiques à la file d’attente. C’est en partie la raison pour laquelle, contrairement à SimpleQueueCache, ce cache n’implémente pas IQueueCache. Il est destiné à être utilisé dans les implémentations spécifiques à la file d’attente d’IQueueCache.

public class PooledQueueCache : Orleans.Providers.Streams.Common.IPurgeObservable
type PooledQueueCache = class
    interface IPurgeObservable
Public Class PooledQueueCache
Implements IPurgeObservable
Héritage
PooledQueueCache
Implémente

Constructeurs

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

Le cache de file d’attente mis en pool est un cache de message qui obtient une ressource à partir d’un pool

Propriétés

IsEmpty

Indique si le cache est vide

ItemCount

Obtient le nombre de messages mis en cache.

Newest

Obtient le message mis en cache le plus récemment ajouté.

Oldest

Obtient le message le plus ancien dans le cache.

Méthodes

Add(List<CachedMessage>, DateTime)

Ajouter une liste de message de file d’attente au cache

GetCursor(IStreamIdentity, StreamSequenceToken)

Acquiert un curseur pour énumérer les messages dans le cache à l’emplacement sequenceToken fourni, filtré sur le flux spécifié.

GetCursor(StreamId, StreamSequenceToken)

Acquiert un curseur pour énumérer les messages dans le cache à l’emplacement sequenceToken fourni, filtré sur le flux spécifié.

RemoveOldestMessage()

Supprimer le message le plus ancien dans le cache, supprimer le bloc le plus ancien aussi si le bloc est vide

TryGetNextMessage(Object, IBatchContainer)

Acquiert le message suivant dans le cache au niveau du curseur fourni

S’applique à