문제

그래서 자정에 실행되는 프로세스가있어 플래시 객체의 시작 및 종점을 설정합니다. 이것은 하루에 한 번만 실행되기 때문에 결과 세트를 캐싱하고 있습니다.

그러나 제가 실행하는 문제는 데이터가 미드 나이트 이후에도 캐시 된 경우 캐시가 만료 될 때까지 가장 올바른 데이터를 가져 오지 않는다는 것입니다.

기본적으로 오후 11시 59 분 59 초에 만료하려면 캐시가 필요하므로 오전 12시에 올바른 데이터를 얻습니다.

데이터를 가져 오는 테이블에 대한 SQL 캐시 의존성이 이상적이라고 생각하지만 이전에는 설정 한 적이 없습니다.

정확히 Midnite에서 특정 항목을 제거하도록 캐시에 알리는 방법이 있습니까?

감사합니다!

-absolute 만료 ---

나는 그것을 얻었다 고 생각한다 :

DateTime expireWeights = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59, 999);
Cache.Insert("CacheItemName", itemToCache, null, expireWeights, System.Web.Caching.Cache.NoSlidingExpiration);
도움이 되었습니까?

해결책

캐시 오브젝트에서 DateTime 인 Absoluteexpiration Time을 설정할 수 있습니다.

Absoluteexpiration과 SqlCachedependency를 결합 할 수도 있습니다.

캐시가 만료 될 때 새 데이터를 가져 오지 않는 문제와 관련하여 : CacheItemRemovedCallback을 연결하여 만료 시점에 대한 알림을 받고 그 당시 캐시를 새로 고칠 수 있습니다.

다른 팁

왜 당신이 절대 만료에 문제가 있는지 이해가 안 돼요? 캐시에서 항목이 만료되는 정확한 DateTime을 표시 할 수 있습니다. 따라서 다음 코드 줄은 "MyObject"를 키 "Mykey"의 캐시에 삽입하고 다음 날 자정에 (캐시에 들어가는 시점에 관계없이) 만료됩니다.

Cache.Insert("MyKey", myObject, null, DateTime.Today.AddDays(1), TimeSpan.Zero);

당신이 보면 여기, "시간 기반 종속성"에서 특정 시간에 항목이 만료되도록 설정하는 방법을 보여줍니다. 그게 당신이 찾고있는 것입니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top