Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set the page cache expiry to be equal to Cache-control. #32

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Set the page cache expiry to be equal to Cache-control.
By default, Drupal will clear CACHE_TEMPORARY on cron. However, this
means that at best, your cache expiry for the page cache can be no
smaller than your cron interval. Some site might set cron to run once
every 30 or 60 minutes, when they might have other data that they want
to keep fresh on the page.

By setting the expiry to be equal to the cache lifetime, we ensure that
cache_get() will return FALSE if the object is truly expired.

This is an implementation of https://drupal.org/node/1279654#comment-6473782
deviantintegral committed Dec 17, 2013
commit 183518120f2d633cfc9b8a1a0bda8a82fab040ab
9 changes: 8 additions & 1 deletion includes/common.inc
Original file line number Diff line number Diff line change
@@ -5181,6 +5181,13 @@ function drupal_page_set_cache() {
global $base_root;

if (drupal_page_is_cacheable()) {
if (variable_get('cache_lifetime', 0)) {
$expire = REQUEST_TIME + variable_get('cache_lifetime', 0);
}
else {
$expire = CACHE_TEMPORARY;
}

$cache = (object) array(
'cid' => $base_root . request_uri(),
'data' => array(
@@ -5189,7 +5196,7 @@ function drupal_page_set_cache() {
'title' => drupal_get_title(),
'headers' => array(),
),
'expire' => CACHE_TEMPORARY,
'expire' => $expire,
'created' => REQUEST_TIME,
);