파일 변화 시 만료되는 캐시 |
임의의 파일에 캐시 데이터가 의존적 이도록 지정할 수 있습니다. 지정된 파일이 생성되거나 지정된 파일이 변할 경우 캐시 데이터가 자동으로 만료되게 됩니다.
이와 같은 캐시 의존성은 CacheDependency 오브젝트를 사용해 정의할 수 있습니다. CacheDependency 오브젝트의 AddFile 메서드를 호출해 의존할 파일을 지정한 후 Insert 메서드를 호출해 글로벌 캐시 매니저에 등록할 수 있습니다.
아래 코드는 sample.txt 파일에 의존하는 캐시 데이터를 정의하고 있습니다. sample.txt 파일의 내용을 캐시 데이터로 사용하고 있으며 파일이 변경되는 경우에 한해서 sample.txt 파일의 내용을 다시 읽어 캐시 데이터를 구성하고 있습니다.
Dim cache, value, fso, f, dependency, filePath Set cache = Server.CreateObject("TABS.DataCache") value = cache("fcache-key") If IsNull(value) Then filePath = Server.MapPath("sample.txt") Set fso = Server.CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile(filePath, 1) value = f.ReadAll Set dependency = Server.CreateObject("TABS.CacheDependency") dependency.AddFile filePath cache.Insert "fcache-key", value, dependency, 0, 0 End If
Insert 메서드로 캐시 데이터를 추가할 때 dependencies 파라미터와 absoluteExpiration, slidingExpirationSec 파라미터를 함께 지정해 의존성과 시간 기준을 함께 적용시킬 수 있습니다. 의존하는 파일에 변화가 있거나 시간이 만료되면 캐시 데이터는 만료되어 조회 시 Null 값이 반환됩니다.
아래 코드는 sample.txt 파일에 의존하고 최대 5분간 유효한 캐시 데이터를 정의하고 있습니다.
Dim cache, value, dependency Set cache = Server.CreateObject("TABS.DataCache") value = cache("fcache-key") If IsNull(value) Then value = "New cached value" Set dependency = Server.CreateObject("TABS.CacheDependency") dependency.AddFile Server.MapPath("sample.txt") cache.Insert "fcache-key", value, dependency, 0, 300 End If