diff options
author | Roeland Jago Douma <rullzer@users.noreply.github.com> | 2019-10-19 11:11:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-19 11:11:52 +0200 |
commit | 6c0e6b531dfd3061d1c00cbabd6732266d801bb9 (patch) | |
tree | 808519a2afd4ee30e2a0e6bc5f2fd9ebcca38262 | |
parent | 6b505fe3b5e460e0ea75a233d51247ef4c04d03e (diff) | |
parent | 53f8f21cc97386c123cef1d833be1c556f63297d (diff) | |
download | nextcloud-server-6c0e6b531dfd3061d1c00cbabd6732266d801bb9.tar.gz nextcloud-server-6c0e6b531dfd3061d1c00cbabd6732266d801bb9.zip |
Merge pull request #17579 from nextcloud/backport/17543/stable17
[stable17] Let SCSS cleanup only run once
-rw-r--r-- | lib/private/Template/SCSSCacher.php | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/private/Template/SCSSCacher.php b/lib/private/Template/SCSSCacher.php index 9bdaca3a674..c6d5fc8ef71 100644 --- a/lib/private/Template/SCSSCacher.php +++ b/lib/private/Template/SCSSCacher.php @@ -117,7 +117,7 @@ class SCSSCacher { $this->serverRoot = $serverRoot; $this->cacheFactory = $cacheFactory; $this->depsCache = $cacheFactory->createDistributed('SCSS-deps-' . md5($this->urlGenerator->getBaseUrl())); - $this->isCachedCache = $cacheFactory->createLocal('SCSS-cached-' . md5($this->urlGenerator->getBaseUrl())); + $this->isCachedCache = $cacheFactory->createDistributed('SCSS-cached-' . md5($this->urlGenerator->getBaseUrl())); $lockingCache = $cacheFactory->createDistributed('SCSS-locks-' . md5($this->urlGenerator->getBaseUrl())); if (!($lockingCache instanceof IMemcache)) { $lockingCache = new NullCache(); @@ -269,8 +269,8 @@ class SCSSCacher { private function variablesChanged(): bool { $injectedVariables = $this->getInjectedVariables(); if ($this->config->getAppValue('core', 'theming.variables') !== md5($injectedVariables)) { - $this->resetCache(); $this->config->setAppValue('core', 'theming.variables', md5($injectedVariables)); + $this->resetCache(); return true; } return false; @@ -364,6 +364,9 @@ class SCSSCacher { * We need to regenerate all files when variables change */ public function resetCache() { + if (!$this->lockingCache->add('resetCache', 'locked!', 120)) { + return; + } $this->injectedVariables = null; // do not clear locks @@ -381,6 +384,7 @@ class SCSSCacher { } } $this->logger->debug('SCSSCacher: css cache cleared!'); + $this->lockingCache->remove('resetCache'); } /** |