次の方法で共有


PooledQueueCache クラス

定義

PooledQueueCache は、IQueueCache のメッセージ キャッシュとして機能することを目的としたキャッシュです。 ガベージ コレクションによるパフォーマンスの低下を最小限に抑えながら、長時間 (分から不定まで) 大量のメッセージ (ギグ相当のメッセージ) を格納できます。 このプールされたキャッシュはメモリを割り当て、解放しません。 解放されたリソースは、サービスの有効期間を通じてアプリケーションで使用されたままのプールで使用できます。 つまり、これらのオブジェクトは gen2 に移動し、圧縮され、そこにとどまります。 これは比較的安価です。現在発生する唯一のコストは、各コレクション サイクルで解放する必要があるかどうかを確認するコストです。 このキャッシュでは、比較的単純なオブジェクト グラフを持つ少数の大きなオブジェクトが使用されるため、より複雑なオブジェクト グラフを含む小さなオブジェクトの数を確認するコストが低くなります。 パフォーマンス上の理由から、このキャッシュはキュー固有のデータとより密接に一致するように設計されています。 これは、SimpleQueueCache とは異なり、このキャッシュで IQueueCache が実装されない理由の一部です。 これは、IQueueCache のキュー固有の実装で使用することを目的としています。

public class PooledQueueCache : Orleans.Providers.Streams.Common.IPurgeObservable
type PooledQueueCache = class
    interface IPurgeObservable
Public Class PooledQueueCache
Implements IPurgeObservable
継承
PooledQueueCache
実装

コンストラクター

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

プールされたキュー キャッシュは、プールからリソースを取得するメッセージのキャッシュです

プロパティ

IsEmpty

キャッシュが空かどうかを示します

ItemCount

キャッシュされたメッセージ数を取得します。

Newest

最後に追加されたキャッシュされたメッセージを取得します。

Oldest

キャッシュ内の最も古いメッセージを取得します。

メソッド

Add(List<CachedMessage>, DateTime)

キュー メッセージの一覧をキャッシュに追加する

GetCursor(IStreamIdentity, StreamSequenceToken)

指定したストリームでフィルター処理された、指定された sequenceToken のキャッシュ内のメッセージを列挙するカーソルを取得します。

GetCursor(StreamId, StreamSequenceToken)

指定したストリームでフィルター処理された、指定された sequenceToken のキャッシュ内のメッセージを列挙するカーソルを取得します。

RemoveOldestMessage()

キャッシュ内の最も古いメッセージを削除し、ブロックが空の場合も最も古いブロックを削除します

TryGetNextMessage(Object, IBatchContainer)

指定されたカーソル位置にあるキャッシュ内の次のメッセージを取得します

適用対象