현재 작동하는 MemoryCache.Default 인스턴스에 항목을 삽입하려고합니다. 그러나 항목이 만료되지 않습니다! 폴링 간격은 기본적으로 2 분으로 설정되어 있으며 MemoryCache에 대한 특정 설정이 없습니다.System.Runtime.Caching의 MemoryCache : 항목이 만료되지 않습니다.
항목 추가 루틴은 다음과 같이이다 : 그러나, 항목이 캐시에 만료되지 않습니다
string key = "someKey";
var faultyItem = GetFaultyItemToBlockFromProcessingTheNextThreeMinutes();
if (!MemoryCache.Default.Contains(key))
{
MemoryCache.Default.Add(
new CacheItem(key, faultyItem),
new CacheItemPolicy()
{
AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(3)
});
}
! 나는 10 분 이상 기다렸고, 그들은 여전히 캐시에있다. 주요 목적은 데이터베이스를 몇 초마다 처리하려고 시도하여 데이터베이스에 쿼리가 넘치지 않도록하는 것입니다. 그들은 몇 초마다 점검되지만 미끄럼 방지는 없습니다. 최대 지연 시간은 여전히 용인 될 수 있으므로 대략 3 분 5 분 후에 다시 확인해야합니다.
코드 외부의 구성을 XML로하고 싶지 않습니다. 가능하지 않다면 MemoryCache 대신 좋은 대안이 있습니까? 아마도 숫자/객체 키와 매개 변수 및 속성을 통한 구성이 필요합니까?
환경이 UTC 시간대로 실행되고 있습니까? 어떻게 10 분 동안 "기다리는"거야? – Algirdas