다음을 통해 공유


PooledQueueCache<TQueueMessage,TCachedMessage> 클래스

정의

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

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

적용 대상