We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit 1030bf35 authored by Evan Prodromou's avatar Evan Prodromou

cache results of notice sitemap query

parent 9d69906d
...@@ -84,8 +84,9 @@ class NoticesitemapAction extends SitemapAction ...@@ -84,8 +84,9 @@ class NoticesitemapAction extends SitemapAction
function getNotices($y, $m, $d, $i) function getNotices($y, $m, $d, $i)
{ {
$offset = ($i-1) * SitemapPlugin::NOTICES_PER_MAP; $n = Notice::cacheGet("sitemap:notice:$y:$m:$d:$i");
$limit = SitemapPlugin::NOTICES_PER_MAP;
if ($n === false) {
$notice = new Notice(); $notice = new Notice();
...@@ -95,7 +96,8 @@ class NoticesitemapAction extends SitemapAction ...@@ -95,7 +96,8 @@ class NoticesitemapAction extends SitemapAction
// with leap seconds (1d == 24h + 1s). Thankfully they're // with leap seconds (1d == 24h + 1s). Thankfully they're
// few and far between. // few and far between.
$enddt = common_sql_date(strtotime($begindt) + (24 * 60 * 60)); $theend = strtotime($begindt) + (24 * 60 * 60);
$enddt = common_sql_date($theend);
$notice->selectAdd(); $notice->selectAdd();
$notice->selectAdd('id, created'); $notice->selectAdd('id, created');
...@@ -107,6 +109,9 @@ class NoticesitemapAction extends SitemapAction ...@@ -107,6 +109,9 @@ class NoticesitemapAction extends SitemapAction
$notice->orderBy('created'); $notice->orderBy('created');
$offset = ($i-1) * SitemapPlugin::NOTICES_PER_MAP;
$limit = SitemapPlugin::NOTICES_PER_MAP;
$notice->limit($offset, $limit); $notice->limit($offset, $limit);
$notice->find(); $notice->find();
...@@ -117,6 +122,16 @@ class NoticesitemapAction extends SitemapAction ...@@ -117,6 +122,16 @@ class NoticesitemapAction extends SitemapAction
$n[] = array($notice->id, $notice->created); $n[] = array($notice->id, $notice->created);
} }
$c = Cache::instance();
if (!empty($c)) {
$c->set(Cache::key("sitemap:notice:$y:$m:$d:$i"),
$n,
Cache::COMPRESSED,
((time() > $theend) ? (time() + 90 * 24 * 60 * 60) : (time() + 5 * 60)));
}
}
return $n; return $n;
} }
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment