Use a persistent cache through Pluf_Cache to speed up cert queries.

This commit is contained in:
Thomas Keller 2010-10-04 15:42:21 +00:00
parent d539eaf64b
commit 97ea828532

View File

@ -157,9 +157,11 @@ class IDF_Scm_Monotone extends IDF_Scm
*/ */
private function _getCerts($rev) private function _getCerts($rev)
{ {
static $certCache = array(); $cache = Pluf_Cache::factory();
$cachekey = 'mtn-plugin-certs-for-rev-' . $rev;
if (!array_key_exists($rev, $certCache)) { $certs = $cache->get($cachekey);
if ($certs === null) {
$out = $this->stdio->exec(array('certs', $rev)); $out = $this->stdio->exec(array('certs', $rev));
$stanzas = IDF_Scm_Monotone_BasicIO::parse($out); $stanzas = IDF_Scm_Monotone_BasicIO::parse($out);
@ -183,10 +185,10 @@ class IDF_Scm_Monotone extends IDF_Scm
} }
} }
} }
$certCache[$rev] = $certs; $cache->set($cachekey, $certs);
} }
return $certCache[$rev]; return $certs;
} }
/** /**