Freigeben über


PooledQueueCache Klasse

Definition

PooledQueueCache ist ein Cache, der als Nachrichtencache in einem IQueueCache dienen soll. Es ist in der Lage, eine große Anzahl von Nachrichten (Gigs im Wert von Nachrichten) für längere Zeiträume (Minuten bis unbestimmt) zu speichern, während es aufgrund der Garbage Collection zu einem minimalen Leistungstreffer kommt. Dieser Poolcache weist Arbeitsspeicher zu und gibt ihn nie frei. Es hält freigegebene Ressourcen in Pools zur Verfügung, die während der Lebensdauer des Diensts in der Anwendung verwendet werden. Dies bedeutet, dass diese Objekte zu gen2 wechseln, komprimiert werden und dann dort bleiben. Dies ist relativ günstig, da die einzigen Kosten, die jetzt anfallen, die Kosten für die Überprüfung sind, ob sie in jedem Sammlungszyklus frei werden sollen. Da dieser Cache eine kleine Anzahl großer Objekte mit relativ einfachen Objektgraphen verwendet, ist die Überprüfung der großen Anzahl kleinerer Objekte mit komplexeren Objektgraphen kostengünstiger. Aus Leistungsgründen ist dieser Cache so konzipiert, dass er besser an warteschlangenspezifischen Daten ausgerichtet ist. Dies ist teilweise der Grund, warum dieser Cache im Gegensatz zum SimpleQueueCache nicht IQueueCache implementiert. Es ist für die Verwendung in warteschlangenspezifischen Implementierungen von IQueueCache vorgesehen.

public class PooledQueueCache : Orleans.Providers.Streams.Common.IPurgeObservable
type PooledQueueCache = class
    interface IPurgeObservable
Public Class PooledQueueCache
Implements IPurgeObservable
Vererbung
PooledQueueCache
Implementiert

Konstruktoren

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

Poolwarteschlangencache ist ein Nachrichtencache, der Ressourcen aus einem Pool abruft.

Eigenschaften

IsEmpty

Gibt an, ob der Cache leer ist.

ItemCount

Ruft die anzahl der zwischengespeicherten Nachrichten ab.

Newest

Ruft die zwischengespeicherte Nachricht ab, die zuletzt hinzugefügt wurde.

Oldest

Ruft die älteste Nachricht im Cache ab.

Methoden

Add(List<CachedMessage>, DateTime)

Hinzufügen einer Liste mit Warteschlangennachrichten zum Cache

GetCursor(IStreamIdentity, StreamSequenceToken)

Ruft einen Cursor ab, um die Nachrichten im Cache auf dem bereitgestellten sequenceToken aufzulisten, der nach dem angegebenen Stream gefiltert wird.

GetCursor(StreamId, StreamSequenceToken)

Ruft einen Cursor ab, um die Nachrichten im Cache auf dem bereitgestellten sequenceToken aufzulisten, der nach dem angegebenen Stream gefiltert wird.

RemoveOldestMessage()

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

TryGetNextMessage(Object, IBatchContainer)

Ruft die nächste Nachricht im Cache am angegebenen Cursor ab.

Gilt für: