共用方式為


PooledQueueCache 類別

定義

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)

取得位於所提供資料指標之快取中的下一個訊息

適用於