#215252 by bdragon: reset the cache flush variable before the cache is flushed, so busy sites will not attempt multiple cache flushes at a time
parent
671e70283d
commit
9e137fc223
|
@ -16,9 +16,10 @@ function cache_get($key, $table = 'cache') {
|
||||||
// Garbage collection necessary when enforcing a minimum cache lifetime
|
// Garbage collection necessary when enforcing a minimum cache lifetime
|
||||||
$cache_flush = variable_get('cache_flush', 0);
|
$cache_flush = variable_get('cache_flush', 0);
|
||||||
if ($cache_flush && ($cache_flush + variable_get('cache_lifetime', 0) <= time())) {
|
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
|
// Time to flush old cache data
|
||||||
db_query("DELETE FROM {". $table ."} WHERE expire != %d AND expire <= %d", CACHE_PERMANENT, $cache_flush);
|
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 FROM {". $table ."} WHERE cid = '%s'", $key));
|
$cache = db_fetch_object(db_query("SELECT data, created, headers, expire FROM {". $table ."} WHERE cid = '%s'", $key));
|
||||||
|
|
Loading…
Reference in New Issue