diff options
-rw-r--r-- | includes/cache.inc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/includes/cache.inc b/includes/cache.inc index 521f36f99..9fe7602c0 100644 --- a/includes/cache.inc +++ b/includes/cache.inc @@ -17,9 +17,10 @@ function cache_get($cid, $table = 'cache') { // Garbage collection necessary when enforcing a minimum cache lifetime $cache_flush = variable_get('cache_flush', 0); if ($cache_flush && ($cache_flush + variable_get('cache_lifetime', 0) <= time())) { + // Reset the variable immediately to prevent a meltdown in heavy load situations. + variable_set('cache_flush', 0); // Time to flush old cache data db_query("DELETE FROM {". $table ."} WHERE expire != %d AND expire <= %d", CACHE_PERMANENT, $cache_flush); - variable_set('cache_flush', 0); } $cache = db_fetch_object(db_query("SELECT data, created, headers, expire, serialized FROM {". $table ."} WHERE cid = '%s'", $cid)); |