PooledQueueCache<TQueueMessage,TCachedMessage> クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
PooledQueueCache は、IQueueCache のメッセージ キャッシュとして機能することを目的としたキャッシュです。 ガベージ コレクションによるパフォーマンスの低下を最小限に抑えながら、長時間 (分から不定) の大量のメッセージ (ギグ相当のメッセージ) を格納できます。 このプールされたキャッシュはメモリを割り当て、解放しません。 これにより、サービスの有効期間を通じてアプリケーションの使用が維持されるプールで、解放されたリソースを使用できるようになります。 つまり、これらのオブジェクトは gen2 に移動し、圧縮され、そこにとどまります。 これは比較的安価です。現在発生する唯一のコストは、各コレクション サイクルで解放する必要があるかどうかを確認するコストです。 このキャッシュでは、比較的単純なオブジェクト グラフを持つ少数のラージ オブジェクトが使用されるため、より複雑なオブジェクト グラフを含む多数の小さなオブジェクトを確認するコストが低くなります。 パフォーマンス上の理由から、このキャッシュはキュー固有のデータに合わせて設計されています。 これは、SimpleQueueCache とは異なり、このキャッシュで IQueueCache が実装されない理由の一部です。 これは、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)
型パラメーター
- TQueueMessage
キュー固有のデータ
- TCachedMessage
密にパックされたキャッシュ構造。 値型のみを含める必要があります。
- 継承
-
PooledQueueCache<TQueueMessage,TCachedMessage>
- 実装
コンストラクター
PooledQueueCache<TQueueMessage,TCachedMessage>(ICacheDataAdapter<TQueueMessage, TCachedMessage>, ICacheDataComparer<TCachedMessage>, ILogger, ICacheMonitor, Nullable<TimeSpan>) |
プールされたキュー キャッシュは、プールからリソースを取得するメッセージのキャッシュです |
PooledQueueCache<TQueueMessage,TCachedMessage>(ICacheDataAdapter<TQueueMessage, TCachedMessage>, ICacheDataComparer<TCachedMessage>, Logger, ICacheMonitor, Nullable<TimeSpan>) |
プールされたキュー キャッシュは、プールからリソースを取得するメッセージのキャッシュです |
プロパティ
IsEmpty |
キャッシュが空かどうかを示します |
ItemCount |
キャッシュされたメッセージ数 |
Newest |
最近追加されたキャッシュ されたメッセージ |
Oldest |
キャッシュ内の最も古いメッセージ |
メソッド
Add(List<TQueueMessage>, DateTime) |
キュー メッセージの一覧をキャッシュに追加する |
GetCursor(IStreamIdentity, StreamSequenceToken) |
指定したストリームでフィルター処理された、指定された sequenceToken にあるキャッシュ内のメッセージを列挙するカーソルを取得します。 |
RemoveOldestMessage() |
キャッシュ内の最も古いメッセージを削除し、ブロックが空の場合は最も古いブロックも削除します |
TryGetNextMessage(Object, IBatchContainer) |
指定されたカーソル位置にあるキャッシュ内の次のメッセージを取得します |