}
public function doUpdate() {
- global $wgMaxBacklinksInvalidate;
-
wfProfileIn( __METHOD__ );
$job = new HTMLCacheUpdateJob(
);
$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)
- $job->run(); // just do the purge query now
+ $dbw = wfGetDB( DB_MASTER );
+ $dbw->onTransactionIdle( function() use ( $job ) {
+ $job->run(); // just do the purge query now
+ } );
}
wfProfileOut( __METHOD__ );