PooledQueueCache Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 |