Freigeben über


PooledQueueCache<TQueueMessage,TCachedMessage> Klasse

Definition

Der PooledQueueCache ist ein Cache, der als Nachrichtencache in einem IQueueCache dienen soll. Es ist in der Lage, große Anzahl von Nachrichten (Gigs wert von Nachrichten) für längere Zeiträume (Minuten bis unbestimmt) zu speichern, während aufgrund der Garbage Collection ein minimaler Leistungstreffer auftritt. Dieser poolierte Cache weist Arbeitsspeicher zu und veröffentlicht es nie. Es behält freigestellte Ressourcen in Pools zur Verfügung, die in der Anwendung über die Lebensdauer des Diensts verbleiben. Dies bedeutet, dass diese Objekte zu Gen2 gehen, komprimiert sind und dann dort bleiben. Dies ist relativ billig, da die einzigen Kosten, die sie jetzt verursachen, die Kosten für die Überprüfung sind, um zu sehen, ob sie in jedem Sammlungszyklus freigestellt werden sollten. Da dieser Cache kleine Anzahl großer Objekte mit relativ einfachen Objektdiagrammen verwendet, sind sie weniger kostspielig, um dann große Anzahl kleinerer Objekte mit komplexeren Objektdiagrammen zu überprüfen. Aus Leistungsgründen ist dieser Cache so konzipiert, dass die Warteschlange spezifische Daten genauer ausgerichtet ist. Dies ist teilweise der Grund, warum dieser Cache im Gegensatz zum SimpleQueueCache nicht IQueueCache implementiert. Es soll in Warteschlange spezifische Implementierungen von IQueueCache verwendet werden.

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)

Typparameter

TQueueMessage

Warteschlange spezifische Daten

TCachedMessage

Eng verpackte zwischengespeicherte Struktur. Sollte nur Werttypen enthalten.

Vererbung
PooledQueueCache<TQueueMessage,TCachedMessage>
Implementiert

Konstruktoren

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

Pooled queue cache is a cache of message that get resource from a pool

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

Pooled queue cache is a cache of message that get resource from a pool

Eigenschaften

IsEmpty

Gibt an, ob der Cache leer ist.

ItemCount

Anzahl zwischengespeicherter Nachrichten

Newest

Zuletzt hinzugefügte zwischengespeicherte Nachricht

Oldest

Älteste Nachricht im Cache

Methoden

Add(List<TQueueMessage>, DateTime)

Hinzufügen einer Liste der Warteschlangennachricht zum Cache

GetCursor(IStreamIdentity, StreamSequenceToken)

Dient zum Aufzählen eines Cursors über die Nachrichten im Cache an der bereitgestellten SequenzToken, gefiltert auf dem angegebenen Stream.

RemoveOldestMessage()

Entfernen Sie älteste Nachricht im Cache, entfernen Sie auch den ältesten Block, wenn der Block leer ist.

TryGetNextMessage(Object, IBatchContainer)

Erhält die nächste Nachricht im Cache am angegebenen Cursor

Gilt für: