diff --git a/src/services/CacheRequestService.php b/src/services/CacheRequestService.php index 3ca1b136..bfb41362 100755 --- a/src/services/CacheRequestService.php +++ b/src/services/CacheRequestService.php @@ -256,16 +256,6 @@ public function getIsCacheableSiteUri(?SiteUriModel $siteUri): bool return true; } - /** - * Returns whether the site URI is expired. - * - * @since 4.8.0 - */ - public function getIsExpiredSiteUri(SiteUriModel $siteUri): bool - { - return Blitz::$plugin->expireCache->getExpiredCacheId($siteUri) !== false; - } - /** * Returns whether this is a cached include without memoizing the result, * which would disrupt the local cache generator. @@ -680,9 +670,9 @@ private function prepareResponse(Response $response, SiteUriModel $siteUri, bool { $cacheControlHeader = Blitz::$plugin->settings->cacheControlHeader; - if ($this->getIsExpiredSiteUri($siteUri)) { + if (Blitz::$plugin->expireCache->getIsExpiredSiteUri($siteUri)) { $cacheControlHeader = Blitz::$plugin->settings->cacheControlHeaderExpired; - Blitz::$plugin->refreshCache->refreshExpiredSiteUri($siteUri); + Blitz::$plugin->refreshCache->refreshExpiredSiteUris([$siteUri]); } $headers = $response->getHeaders(); diff --git a/src/services/ExpireCacheService.php b/src/services/ExpireCacheService.php index f2c1d593..4e345f43 100755 --- a/src/services/ExpireCacheService.php +++ b/src/services/ExpireCacheService.php @@ -55,15 +55,16 @@ public function getExpiredCacheIds(): array } /** - * Returns an expired cache ID with the provided site URI. + * Returns whether the site URI is expired. + * + * @since 4.15.0 */ - public function getExpiredCacheId(SiteUriModel $siteUri): int|false|null + public function getIsExpiredSiteUri(SiteUriModel $siteUri): bool { return CacheRecord::find() - ->select('id') ->where(['<=', 'expiryDate', Db::prepareDateForDb('now')]) ->andWhere($siteUri->toArray()) - ->scalar(); + ->exists(); } /** diff --git a/src/services/RefreshCacheService.php b/src/services/RefreshCacheService.php index b7eeec0d..088283c3 100755 --- a/src/services/RefreshCacheService.php +++ b/src/services/RefreshCacheService.php @@ -462,17 +462,13 @@ public function refreshSite(int $siteId): void } /** - * Refreshes an expired site URI. + * Refreshes expired site URIs. */ - public function refreshExpiredSiteUri(SiteUriModel $siteUri): void + public function refreshExpiredSiteUris(array $siteUris): void { - $cacheId = Blitz::$plugin->expireCache->getExpiredCacheId($siteUri); - - if (empty($cacheId)) { - return; - } + $cacheIds = SiteUriHelper::getCacheIdsFromSiteUris($siteUris); + $this->addCacheIds($cacheIds); - $this->addCacheIds([$cacheId]); $this->refreshExpired(); } @@ -482,9 +478,11 @@ public function refreshExpiredSiteUri(SiteUriModel $siteUri): void public function refreshExpiredCache(): void { $this->batchMode = true; + $cacheIds = Blitz::$plugin->expireCache->getExpiredCacheIds(); $this->addCacheIds($cacheIds); $this->addExpiredElements(); + $this->refreshExpired(); } @@ -494,7 +492,9 @@ public function refreshExpiredCache(): void public function refreshExpiredElements(): void { $this->batchMode = true; + $this->addExpiredElements(); + $this->refreshExpired(); }