Using the steps explained here:on https://www.lullabot.com/blog/article/beginners-guide-caching-data-drupal-7A Beginner's Guide to Caching Data in Drupal 7, I'm storing an array with a specified expiryexpiration time.
But what is happening is that even after expiry of time, the cache_get()
is still returning the stale cache, when the expiration time is passed. Even cron
runCron is not deleting the cache entry. (I've checked the cache_block
cache_block table).)
This is the code: I am using.
$out = &drupal_static(__FUNCTION__);
if ( !isset($out)) {
if ( ( $cache = cache_get(__FUNCTION__,'cache_block'))) {
$out = $cache->data;
dsm("cache returned");
} else {
//do something
//...........
$out = '<ul style="list-style:none;padding-right:20px">' . $out . "</ul>";
cache_set(__FUNCTION__, $out, 'cache_block', strtotime("23:59:59")+2);
}//else ends
}//!isset ends
return $out;
}//function ends
$out = &drupal_static(__FUNCTION__);
if (!isset($out)) {
if (($cache = cache_get(__FUNCTION__,'cache_block'))) {
$out = $cache->data;
dsm("cache returned");
}
else {
// Do something.
$out = '<ul style="list-style:none;padding-right:20px">' . $out . "</ul>";
cache_set(__FUNCTION__, $out, 'cache_block', strtotime("23:59:59")+2);
}
}
return $out;
Only "cache clear all" in the PerformancePerformance tab is clearing this cache entry in the cache table.
I'm confused how this expired cache will be deleted.
In that article I can read this statement:.
Expired entries will be automatically discarded as they pass that date date.
But thatThat does not seem to be happening. Alsohappen, although I've verified that the "expire" value in the cache table is beyond the current time.
I can clear the cache myself, but then the cache_get()
function does not return the "expire" time in the table.
Anything I'm missing here?