Tôi có bộ dữ liệu lớn được cập nhật mỗi ngày một lần. Tôi đang lưu vào bộ nhớ cache kết quả của một truy vấn đắt tiền trên dữ liệu đó nhưng tôi muốn cập nhật bộ nhớ cache đó mỗi ngày. Tôi đang xem xét sử dụng CacheItemRemovedCallback để tải lại bộ nhớ cache của tôi trên một khoảng thời gian hàng ngày, nhưng tôi đã có những mối quan tâm sau đây:Khi nào thích hợp để sử dụng CacheItemRemovedCallback?
- Không phải là nó có thể là CacheItemRemovedCallback có thể được gọi trước khi hết hạn của tôi (trong trường hợp chạy ra khỏi bộ nhớ)? Có nghĩa là tải lại nó ngay lập tức có vẻ không phải là một ý tưởng hay.
- CacheItemRemovedCallback có được gọi trước hoặc sau khi mục đó thực sự bị xóa không? Nếu nó là sau, không lý thuyết này để lại một khoảng thời gian mà bộ nhớ cache sẽ không có sẵn?
Những mối quan tâm này có liên quan và nếu sử dụng CacheItemRemovedCallback để tải lại bộ nhớ cache của bạn là một ý tưởng tồi, khi nào thì hữu ích?
Vâng, có những cách sử dụng thực tế khác cho 'CacheItemRemovedCallback' - không chỉ ghi nhật ký. Ví dụ: có các tham chiếu bên ngoài được lưu bởi một mục được lưu trong bộ nhớ cache mà bạn muốn vứt bỏ khi mục được lưu trong bộ nhớ cache bị xóa. Nếu bạn không sử dụng CacheItemRemovedCallback thì bạn sẽ phải dựa hoàn toàn vào Garbage Collector mà không cung cấp sự đảm bảo nào khi nó sẽ thực hiện (nếu bao giờ trong suốt thời gian của chương trình của bạn). –