Compartilhar via


PooledQueueCache 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 : Orleans.Providers.Streams.Common.IPurgeObservable
type PooledQueueCache = class
    interface IPurgeObservable
Public Class PooledQueueCache
Implements IPurgeObservable
Herança
PooledQueueCache
Implementações

Construtores

PooledQueueCache(ICacheDataAdapter, ILogger, ICacheMonitor, Nullable<TimeSpan>, 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

Obtém a contagem de mensagens armazenadas em cache.

Newest

Obtém a mensagem armazenada em cache adicionada mais recentemente.

Oldest

Obtém a mensagem mais antiga no cache.

Métodos

Add(List<CachedMessage>, 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.

GetCursor(StreamId, 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