PooledQueueCache<TQueueMessage,TCachedMessage> 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
PooledQueueCache 是一个缓存,旨在用作 IQueueCache 中的消息缓存。 它可以存储大量消息 () 长时间 (分钟到无限期) 的消息,同时由于垃圾回收而造成最小性能损失。 此共用缓存分配内存,并且永远不会释放内存。 它在服务生命周期内保留在应用程序使用的池中可用的可用资源。 这意味着这些对象会转到第 2 代,经过压缩,然后保留在那里。 这相对便宜,因为他们现在的唯一成本是检查成本,看看它们是否应在每个收集周期中释放。 由于此缓存使用少量具有相对简单的对象图的大型对象,因此检查大量具有更复杂的对象图的较小对象的成本较低。 出于性能原因,此缓存旨在更紧密地与队列特定数据保持一致。 这部分原因与 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) |
在提供的游标处获取缓存中的下一条消息 |