Skip to main content
1 of 5
user5858
  • 264
  • 1
  • 2
  • 14

Cache not clearing on expiry

Using the steps explained here: http://www.lullabot.com/blog/article/beginners-guide-caching-data-drupal-7 I'm storing an array with specified expiry time.

But what is happening is that even after expiry of time, the cache_get is returning the stale cache. Even Cron run is not deleting the cache entry(I've checked the cache_block table).

This is the code:

 $out = &drupal_static(__FUNCTION__);

    if ( !isset($out)) {
        if ( ( $cache = cache_get(__FUNCTION__,'cache_block'))) {
            $out = $cache->data;
            dsm("cache returned");
        } else {

Only cache clear all in the Performance 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.

But does not seem to be happening. Also I've verified that "expire" value in the cache table is beyond current time.

I can clear the cache myself but then cache_get function does not return the "expire" time in the table.

Anything I'm missing here?

user5858
  • 264
  • 1
  • 2
  • 14