다음을 통해 공유


PooledQueueCache 클래스

정의

PooledQueueCache는 IQueueCache에서 메시지 캐시로 사용할 캐시입니다. 가비지 수집으로 인한 성능 저하를 최소화하면서 장시간(분에서 무기한)동안 많은 수의 메시지(메시지의 공연 가치)를 저장할 수 있습니다. 이 풀된 캐시는 메모리를 할당하고 해제하지 않습니다. 서비스 수명 동안 애플리케이션에 남아 있는 풀에서 사용 가능한 해제된 리소스를 유지합니다. 즉, 이러한 개체는 gen2로 이동하고 압축된 후 그대로 유지됩니다. 이것은 상대적으로 저렴 한, 그들은 지금 발생 하는 유일한 비용은 각 컬렉션 주기에서 해제 해야 하는지 확인 하는 비용. 이 캐시는 비교적 간단한 개체 그래프를 사용하여 적은 수의 큰 개체를 사용하므로 더 복잡한 개체 그래프를 사용하여 더 많은 수의 작은 개체를 확인하는 데 비용이 적게 듭니다. 성능상의 이유로 이 캐시는 큐 특정 데이터와 보다 긴밀하게 정렬되도록 설계되었습니다. 이는 부분적으로 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)

제공된 커서에서 캐시의 다음 메시지를 가져옵니다.

적용 대상