Compartilhar via


PooledQueueCache<TQueueMessage,TCachedMessage> Classe

Definição

O PooledQueueCache é um cache destinado a servir como um cache de mensagens em um IQueueCache. Ele é capaz de armazenar um grande número de mensagens (gigs de mensagens) por longos períodos de tempo (minutos para indefinidos), enquanto incorre em um impacto mínimo no desempenho devido à coleta de lixo. Esse cache em pool aloca memória e nunca a libera. Ele mantém os recursos liberados disponíveis em pools que permanecem no uso do aplicativo durante a vida útil do serviço. Isso significa que esses objetos vão para gen2, são compactados e permanecem lá. Isso é relativamente barato, pois o único custo que eles agora incorrem é o custo de verificar se eles devem ser liberados em cada ciclo de coleta. Como esse cache usa pequenos números de objetos grandes com grafos de objeto relativamente simples, eles são menos caros para verificar e, em seguida, um grande número de objetos menores com grafos de objeto mais complexos. Por motivos de desempenho, esse cache foi projetado para se alinhar mais de perto com dados específicos da fila. Isso é, em parte, por que, ao contrário do SimpleQueueCache, esse cache não implementa IQueueCache. Ele destina-se a ser usado em implementações específicas da fila do 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)

Parâmetros de tipo

TQueueMessage

Dados específicos da fila

TCachedMessage

Estrutura armazenada em cache bem empacotada. Deve conter apenas tipos de valor.

Herança
PooledQueueCache<TQueueMessage,TCachedMessage>
Implementações

Construtores

PooledQueueCache<TQueueMessage,TCachedMessage>(ICacheDataAdapter<TQueueMessage, TCachedMessage>, ICacheDataComparer<TCachedMessage>, ILogger, ICacheMonitor, Nullable<TimeSpan>)

O cache de fila em pool é um cache de mensagem que obtém o recurso de um pool

PooledQueueCache<TQueueMessage,TCachedMessage>(ICacheDataAdapter<TQueueMessage, TCachedMessage>, ICacheDataComparer<TCachedMessage>, Logger, ICacheMonitor, Nullable<TimeSpan>)

O cache de fila em pool é um cache de mensagem que obtém o recurso de um pool

Propriedades

IsEmpty

Indica se o cache está vazio

ItemCount

Contagem de mensagens armazenadas em cache

Newest

Mensagem armazenada em cache adicionada mais recentemente

Oldest

Mensagem mais antiga no cache

Métodos

Add(List<TQueueMessage>, DateTime)

Adicionar uma lista de mensagens de fila ao cache

GetCursor(IStreamIdentity, StreamSequenceToken)

Adquire um cursor para enumerar pelas mensagens no cache no sequenceToken fornecido, filtrado no fluxo especificado.

RemoveOldestMessage()

Remova a mensagem mais antiga no cache, remova o bloco mais antigo também se o bloco estiver vazio

TryGetNextMessage(Object, IBatchContainer)

Adquire a próxima mensagem no cache no cursor fornecido

Aplica-se a