PooledQueueCache<TQueueMessage,TCachedMessage> 类

定义

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>
实现

构造函数

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)

在提供的游标处获取缓存中的下一条消息

适用于