Tôi có một cuộc gọi máy chủ khá tốn kém mà tôi cần phải lưu trong bộ nhớ cache trong 30 giây. Có vẻ như tuy nhiên tôi không thể nhận được bộ nhớ cache hết hạn.Mục bộ nhớ cache tạm thời Drupal 7 sẽ không hết hạn
Trong mã bên dưới, sau lần đầu tiên bộ đệm lưu trữ, nó sẽ không bao giờ vượt qua $ return-> cache_data, ngay cả sau thời gian() + 30 giây.
Lưu ý, tôi thậm chí có thể in $ cache-> hết hạn và nó chắc chắn được đặt thành thời gian trong 30 giây trước và không bao giờ cập nhật.
Tôi đã xóa bộ nhớ cache theo cách thủ công nhiều lần để xác nhận tôi nhận được kết quả tương tự.
Có vấn đề gì với điều này không?
function mymodule_get_something($id) {
// set the unique cache id
$cid = 'id-'. $id;
// return data if there's an un-expired cache entry
// *** $cache ALWAYS gets populated with my expired data
if ($cache = cache_get($cid, 'cache_mymodule')) {
return $cache->data;
}
// set my super expensive data call here
$something = array('Double Decker Taco', 'Burrito Supreme');
// set the cache to expire in 30 seconds
cache_set($cid, $something, 'cache_mymodule', time() + 30);
// return my data
return $something;
}
Cám ơn kiểm tra sanity. – Coder1
Cách tiếp cận tốt đẹp. 1 ... EDIT: Chỉ cần nhận thấy nó là Clive. Tất nhiên đó là một cách tiếp cận tốt. –
Xin chào Clive, "bộ nhớ cache chung tiếp theo" là gì? drush cc tất cả đều loại bỏ cả CACHE_TEMPORARY & CACHE_PERMANENT. Khi vuốt bộ nhớ cache chung xảy ra, bất kỳ ý tưởng nào? –