Partager via


PooledQueueCache<TQueueMessage,TCachedMessage> 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 (en quantités de messages) pendant des périodes prolongées (minutes à indéfinies), tout en entraînant un impact minimal sur les performances en raison du nettoyage de la mémoire. Ce cache mis en pool alloue de la mémoire et ne la libère jamais. Il conserve les ressources libérées disponibles dans les pools qui restent utilisés par l’application tout au long de la durée de vie du service. Cela signifie que ces objets vont à 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 vérification pour voir s’ils doivent être libérés à chaque cycle de collecte. Étant donné que ce cache utilise un petit nombre d’objets volumineux avec des graphiques d’objets relativement simples, il est moins coûteux de 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 pourquoi, 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<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)

Paramètres de type

TQueueMessage

Données spécifiques à la file d’attente

TCachedMessage

Structure mise en cache étroitement empaquetée. Doit contenir uniquement des types valeur.

Héritage
PooledQueueCache<TQueueMessage,TCachedMessage>
Implémente

Constructeurs

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

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

PooledQueueCache<TQueueMessage,TCachedMessage>(ICacheDataAdapter<TQueueMessage, TCachedMessage>, ICacheDataComparer<TCachedMessage>, Logger, ICacheMonitor, 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

Nombre de messages mis en cache

Newest

Message mis en cache le plus récemment ajouté

Oldest

Message le plus ancien dans le cache

Méthodes

Add(List<TQueueMessage>, DateTime)

Ajouter une liste de messages 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é.

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 à