PooledQueueCache 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
PooledQueueCache 是一個快取,用來作為 IQueueCache 中的訊息快取。 它能夠將大量訊息儲存 (gigs,) 一段時間 (分鐘到無限期) ,同時因為垃圾收集而造成效能降低。 這個集區快取會配置記憶體,永遠不會釋放它。 它會保留集區中可用的可用資源,這些資源會在服務存留期間繼續使用應用程式。 這表示這些物件會移至 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) |
取得位於所提供資料指標之快取中的下一個訊息 |