PooledQueueCache<TQueueMessage,TCachedMessage> Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 |