PooledQueueCache<TQueueMessage,TCachedMessage> 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
PooledQueueCache 是一個快取,用來作為 IQueueCache 中的訊息快取。 它能夠將大量訊息儲存 (gigs,) 一段時間 (分鐘到無限期) ,同時因為垃圾收集而造成效能降低。 這個集區快取會配置記憶體,永遠不會釋放它。 它會保留集區中可用的可用資源,這些資源會在服務存留期間繼續使用應用程式。 這表示這些物件會移至 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>
- 實作
建構函式
屬性
IsEmpty |
指出快取是否空白 |
ItemCount |
快取的訊息計數 |
Newest |
最近新增的快取訊息 |
Oldest |
快取中最舊的訊息 |
方法
Add(List<TQueueMessage>, DateTime) |
將佇列訊息清單新增至快取 |
GetCursor(IStreamIdentity, StreamSequenceToken) |
取得資料指標,以在所提供 sequenceToken 的快取中列舉訊息,並篩選在指定的資料流程上。 |
RemoveOldestMessage() |
移除快取中最舊的訊息,如果區塊是空的,請移除最舊的區塊 |
TryGetNextMessage(Object, IBatchContainer) |
取得位於所提供資料指標之快取中的下一個訊息 |