PooledQueueCache Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
PooledQueueCache — это кэш, предназначенный для использования в качестве кэша сообщений в IQueueCache. Он способен хранить большое количество сообщений (концерты объемом сообщений) в течение длительных периодов времени (в минутах до неопределенного времени), обеспечивая минимальное снижение производительности из-за сборки мусора. Этот кэш в пуле выделяет память и никогда не освобождает ее. Он обеспечивает доступность освобожденных ресурсов в пулах, которые остаются в использовании приложениями в течение всего жизненного срока службы. Это означает, что эти объекты переходят в 2-е поколение, сжимаются, а затем остаются там. Это относительно дешево, так как единственные затраты, которые они теперь несут, это стоимость проверки, чтобы узнать, должны ли они быть освобождены в каждом цикле сбора. Так как в этом кэше используется небольшое количество больших объектов с относительно простыми графами объектов, проверка большого количества объектов с более сложными графами объектов менее затратна. Для повышения производительности этот кэш предназначен для более тесного согласования с данными, характерными для конкретной очереди. Отчасти поэтому, в отличие от 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) |
Получает следующее сообщение в кэше с указанным курсором. |