Made $wgMaxBacklinksInvalidate actually work.
authorAaron Schulz <aschulz@wikimedia.org>
Fri, 12 Apr 2013 17:47:31 +0000 (10:47 -0700)
committerAaron Schulz <aschulz@wikimedia.org>
Fri, 12 Apr 2013 17:48:10 +0000 (10:48 -0700)
* The check never worked before due to the 200 limit passed to getNumLinks().

Change-Id: I009c757c6437f22544a8d7d09d3534950c32c887

includes/cache/HTMLCacheUpdate.php
includes/job/jobs/HTMLCacheUpdateJob.php

index 88e7928..791ae3e 100644 (file)
@@ -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)
index 818c6ab..d4a2024 100644 (file)
@@ -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;
        }