하늘색 API 관리자 정책에 특정 값을 캐싱하고 경우에 따라 항목을 제거하여 캐시를 정리하고 API에서 값을 검색합니다.Azure Api 캐시 캐시 항목을 제거하지 않는 관리자 캐시 제거 값 정책
캐시 제거 값 정책을 사용하여 값을 제거한 후에도 내 다음 API 호출은 여전히 캐시의 값을 찾습니다. 다음은 샘플 코드입니다 :
<cache-store-value key="Key123" value="123" duration="300" />
<cache-lookup-value key="Key123" variable-name="CacheVariable" />
<cache-remove-value key="Key123" />
<cache-lookup-value key="Key123" default-value="empty" variable-name="CacheVariable2" />
<return-response>
<set-status code="504" reason="" />
<set-body>@(context.Variables.GetValueOrDefault<string>("CacheVariable2"))</set-body>
</return-response>
이 코드는 기본적으로 반환 비어 있거나 키 Key123와 캐시 항목을 제거하거나하지 후에 발견 된 경우에 따라 본문에 "123". 이 값은 항상 캐시 된 항목 "123"의 값을 반환합니다.
이 문제가 발생했거나 캐시를 정리하는 방법을 찾은 사람이 있습니까?
Ret Retry를 계속 체크인하면 항목이 2 초 후, 때로는 1 분 후 청소되는 경우가 있습니다. 삭제 호출은 백그라운드에서 비동기식 또는 대기열에있는 호출이라고 생각하여 지속적으로 확인하지 않고도 정리 된 것인지 여부를 확실히 알 수 없습니다.
UPDATE : 지금은 실제 솔루션으로
대신 삭제, 나는 실제로 일초 기간과 더러운 값으로 캐시 항목을 업데이트합니다.
. 대개의 경우 redis 캐시를 분산 호출하기 때문에 이러한 종류의 작업을 차단하고 싶지는 않습니다. 흥미롭게도 나는 업데이트 캐시가 같은 일을 할 것이라고 기대할 것이므로 귀하의 대안으로 다른 행동을하는 이유를 확신 할 수 없습니다. –
계속 진행하기 전에 cache-remove-value가 완료 될 때까지 정책 처리가 대기하지 않지만 cache-store는 수행합니다. 따라서 해결 방법이 작동하지만 더 나은 방법이 있어야합니다. –