If you take a look at system_cron()
, you will see
$cache_tables = array_merge(module_invoke_all('flush_caches'), $core);
foreach ($cache_tables as $table) {
cache_clear_all(NULL, $table);
}
Reading the docs for cache_clear_all($cid, $bin)
:
$cid: If set, the cache ID or an array of cache IDs. Otherwise, all cache entries that can expire are deleted. The $wildcard argument
will be ignored if set to NULL.
This means that a full cache clear won't be done, but entries that are older than their TTL are removed from the cache.
However, {cache_page}
uses CACHE_TEMPORARY
for the TTL (see drupal_page_set_cache()
, so these will be removed each cron run. Though the code support it, I have never seen anything other that a -1
in the exipres column in {cache_page}
, no matter what the TTLs on the performance settings are.