From 135ae433d2a61e47c1d8df8cb0b295525303f0fa Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Fri, 12 Apr 2013 10:47:31 -0700 Subject: [PATCH] Made $wgMaxBacklinksInvalidate actually work. * The check never worked before due to the 200 limit passed to getNumLinks(). Change-Id: I009c757c6437f22544a8d7d09d3534950c32c887 --- includes/cache/HTMLCacheUpdate.php | 6 +----- includes/job/jobs/HTMLCacheUpdateJob.php | 8 ++++++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/includes/cache/HTMLCacheUpdate.php b/includes/cache/HTMLCacheUpdate.php index 88e7928183..791ae3e8b9 100644 --- a/includes/cache/HTMLCacheUpdate.php +++ b/includes/cache/HTMLCacheUpdate.php @@ -46,8 +46,6 @@ class HTMLCacheUpdate implements DeferrableUpdate { } public function doUpdate() { - global $wgMaxBacklinksInvalidate; - wfProfileIn( __METHOD__ ); $job = new HTMLCacheUpdateJob( @@ -60,9 +58,7 @@ class HTMLCacheUpdate implements DeferrableUpdate { ); $count = $this->mTitle->getBacklinkCache()->getNumLinks( $this->mTable, 200 ); - if ( $wgMaxBacklinksInvalidate !== false && $count > $wgMaxBacklinksInvalidate ) { - wfDebug( "Skipped HTML cache invalidation of {$this->mTitle->getPrefixedText()}." ); - } elseif ( $count >= 200 ) { // many backlinks + if ( $count >= 200 ) { // many backlinks JobQueueGroup::singleton()->push( $job ); JobQueueGroup::singleton()->deduplicateRootJob( $job ); } else { // few backlinks ($count might be off even if 0) diff --git a/includes/job/jobs/HTMLCacheUpdateJob.php b/includes/job/jobs/HTMLCacheUpdateJob.php index 818c6abf94..d4a2024159 100644 --- a/includes/job/jobs/HTMLCacheUpdateJob.php +++ b/includes/job/jobs/HTMLCacheUpdateJob.php @@ -79,8 +79,15 @@ class HTMLCacheUpdateJob extends Job { * Update all of the backlinks */ protected function doFullUpdate() { + global $wgMaxBacklinksInvalidate; + # Get an estimate of the number of rows from the BacklinkCache $numRows = $this->blCache->getNumLinks( $this->params['table'] ); + if ( $wgMaxBacklinksInvalidate !== false && $numRows > $wgMaxBacklinksInvalidate ) { + wfDebug( "Skipped HTML cache invalidation of {$this->title->getPrefixedText()}." ); + return true; + } + if ( $numRows > $this->rowsPerJob * 2 ) { # Do fast cached partition $this->insertPartitionJobs(); @@ -96,6 +103,7 @@ class HTMLCacheUpdateJob extends Job { $this->invalidateTitles( $titleArray ); // just do the query } } + return true; } -- 2.20.1