Made recent changes purge jobs bail more aggressively
authorAaron Schulz <aschulz@wikimedia.org>
Fri, 3 Jul 2015 18:11:41 +0000 (11:11 -0700)
committerAaron Schulz <aschulz@wikimedia.org>
Fri, 3 Jul 2015 18:11:41 +0000 (11:11 -0700)
* This should handle unusual spikes better

Bug: T104670
Change-Id: I562f74d0871b192f1dfb2ac03ef2a4a87cecf0e2

includes/jobqueue/jobs/RecentChangesUpdateJob.php

index e86d914..d6fa26b 100644 (file)
@@ -75,11 +75,13 @@ class RecentChangesUpdateJob extends Job {
                $lockKey = wfWikiID() . ':recentchanges-prune';
 
                $dbw = wfGetDB( DB_MASTER );
-               if ( !$dbw->lock( $lockKey, __METHOD__, 1 ) ) {
+               if ( !$dbw->lockIsFree( $lockKey, __METHOD__ )
+                       || !$dbw->lock( $lockKey, __METHOD__, 1 )
+               ) {
                        return; // already in progress
                }
-               $batchSize = 100; // Avoid slave lag
 
+               $batchSize = 100; // avoid slave lag
                $cutoff = $dbw->timestamp( time() - $wgRCMaxAge );
                do {
                        $rcIds = $dbw->selectFieldValues( 'recentchanges',