Permalink
Browse files

PhabricatorCaches use namespace if set

Summary: PhabricatorCaches now uses namespaced caches if cofig option for cache is set.

Test Plan: noidea

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

Maniphest Tasks: T2786

Differential Revision: https://secure.phabricator.com/D5425
  • Loading branch information...
1 parent 004a8de commit 9a15f243fa96cce2c6f736d8d6df6bbf51c9a5f2 @ljalonen ljalonen committed with epriestley Mar 22, 2013
@@ -5,6 +5,9 @@
*/
final class PhabricatorCaches {
+ public static function getNamespace() {
+ return PhabricatorEnv::getEnvConfig('phabricator.cache-namespace');
+ }
/* -( Setup Cache )-------------------------------------------------------- */
@@ -42,6 +45,12 @@ private static function buildSetupCaches() {
// In most cases, we should have APC. This is an ideal cache for our
// purposes -- it's fast and empties on server restart.
$apc = new PhutilKeyValueCacheAPC();
+
+ if (PhabricatorCaches::getNamespace()) {
+ $apc = id(new PhutilKeyValueCacheNamespace($apc))
+ ->setNamespace(PhabricatorCaches::getNamespace());
+ }
+
if ($apc->isAvailable()) {
return array($apc);
}
@@ -51,6 +60,12 @@ private static function buildSetupCaches() {
$disk_path = self::getSetupCacheDiskCachePath();
if ($disk_path) {
$disk = new PhutilKeyValueCacheOnDisk();
+
+ if (PhabricatorCaches::getNamespace()) {
+ $disk = id(new PhutilKeyValueCacheNamespace($disk))
+ ->setNamespace(PhabricatorCaches::getNamespace());
+ }
+
$disk->setCacheFile($disk_path);
if ($disk->isAvailable()) {
return array($disk);
@@ -139,7 +139,11 @@ public function getOptions() {
->setLocked(true)
->setDescription(
pht('Custom HTML to show on the main Phabricator dashboard.')),
+ $this->newOption('phabricator.cache-namespace', 'string', null)
+ ->setLocked(true)
+ ->setDescription(pht('Cache namespace.')),
);
+
}
protected function didValidateOption(

0 comments on commit 9a15f24

Please sign in to comment.