Click or drag to resize

파일 변화 시 만료되는 캐시

파일 변화 시 만료되는 캐시

임의의 파일에 캐시 데이터가 의존적 이도록 지정할 수 있습니다. 지정된 파일이 생성되거나 지정된 파일이 변할 경우 캐시 데이터가 자동으로 만료되게 됩니다.

이와 같은 캐시 의존성은 CacheDependency 오브젝트를 사용해 정의할 수 있습니다. CacheDependency 오브젝트의 AddFile 메서드를 호출해 의존할 파일을 지정한 후 Insert 메서드를 호출해 글로벌 캐시 매니저에 등록할 수 있습니다.

아래 코드는 sample.txt 파일에 의존하는 캐시 데이터를 정의하고 있습니다. sample.txt 파일의 내용을 캐시 데이터로 사용하고 있으며 파일이 변경되는 경우에 한해서 sample.txt 파일의 내용을 다시 읽어 캐시 데이터를 구성하고 있습니다.

ASP
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분간 유효한 캐시 데이터를 정의하고 있습니다.

ASP
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