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) |
Получает следующее сообщение в кэше на предоставленном курсоре. |