Brion VIBBER has submitted this change and it was merged.

Change subject: Moved JobQueueDB::recycleAndDeleteStaleJobs() function below 
overriden ones.
......................................................................


Moved JobQueueDB::recycleAndDeleteStaleJobs() function below overriden ones.

Change-Id: Iabb792cc78dd31860cc351c0375cbc38fc0d4aea
---
M includes/job/JobQueueDB.php
1 file changed, 71 insertions(+), 71 deletions(-)

Approvals:
  Brion VIBBER: Verified; Looks good to me, approved
  jenkins-bot: Verified



diff --git a/includes/job/JobQueueDB.php b/includes/job/JobQueueDB.php
index ae4576c..103ba32 100644
--- a/includes/job/JobQueueDB.php
+++ b/includes/job/JobQueueDB.php
@@ -429,77 +429,6 @@
        }
 
        /**
-        * Recycle or destroy any jobs that have been claimed for too long
-        *
-        * @return integer Number of jobs recycled/deleted
-        */
-       public function recycleAndDeleteStaleJobs() {
-               $now = time();
-               list( $dbw, $scope ) = $this->getMasterDB();
-               $count = 0; // affected rows
-
-               if ( !$dbw->lock( "jobqueue-recycle-{$this->type}", __METHOD__, 
1 ) ) {
-                       return $count; // already in progress
-               }
-
-               // Remove claims on jobs acquired for too long if enabled...
-               if ( $this->claimTTL > 0 ) {
-                       $claimCutoff = $dbw->timestamp( $now - $this->claimTTL 
);
-                       // Get the IDs of jobs that have be claimed but not 
finished after too long.
-                       // These jobs can be recycled into the queue by 
expiring the claim. Selecting
-                       // the IDs first means that the UPDATE can be done by 
primary key (less deadlocks).
-                       $res = $dbw->select( 'job', 'job_id',
-                               array(
-                                       'job_cmd' => $this->type,
-                                       "job_token != {$dbw->addQuotes( '' )}", 
// was acquired
-                                       "job_token_timestamp < 
{$dbw->addQuotes( $claimCutoff )}", // stale
-                                       "job_attempts < {$dbw->addQuotes( 
$this->maxTries )}" ), // retries left
-                               __METHOD__
-                       );
-                       $ids = array_map( function( $o ) { return $o->job_id; 
}, iterator_to_array( $res ) );
-                       if ( count( $ids ) ) {
-                               // Reset job_token for these jobs so that other 
runners will pick them up.
-                               // Set the timestamp to the current time, as it 
is useful to now that the job
-                               // was already tried before (the timestamp 
becomes the "released" time).
-                               $dbw->update( 'job',
-                                       array(
-                                               'job_token' => '',
-                                               'job_token_timestamp' => 
$dbw->timestamp( $now ) ), // time of release
-                                       array(
-                                               'job_id' => $ids ),
-                                       __METHOD__
-                               );
-                               $count += $dbw->affectedRows();
-                               wfIncrStats( 'job-recycle', 
$dbw->affectedRows() );
-                               $this->cache->set( $this->getCacheKey( 'empty' 
), 'false', self::CACHE_TTL_LONG );
-                       }
-               }
-
-               // Just destroy any stale jobs...
-               $pruneCutoff = $dbw->timestamp( $now - self::MAX_AGE_PRUNE );
-               $conds = array(
-                       'job_cmd' => $this->type,
-                       "job_token != {$dbw->addQuotes( '' )}", // was acquired
-                       "job_token_timestamp < {$dbw->addQuotes( $pruneCutoff 
)}" // stale
-               );
-               if ( $this->claimTTL > 0 ) { // only prune jobs attempted too 
many times...
-                       $conds[] = "job_attempts >= {$dbw->addQuotes( 
$this->maxTries )}";
-               }
-               // Get the IDs of jobs that are considered stale and should be 
removed. Selecting
-               // the IDs first means that the UPDATE can be done by primary 
key (less deadlocks).
-               $res = $dbw->select( 'job', 'job_id', $conds, __METHOD__ );
-               $ids = array_map( function( $o ) { return $o->job_id; }, 
iterator_to_array( $res ) );
-               if ( count( $ids ) ) {
-                       $dbw->delete( 'job', array( 'job_id' => $ids ), 
__METHOD__ );
-                       $count += $dbw->affectedRows();
-               }
-
-               $dbw->unlock( "jobqueue-recycle-{$this->type}", __METHOD__ );
-
-               return $count;
-       }
-
-       /**
         * @see JobQueue::doAck()
         * @param Job $job
         * @throws MWException
@@ -605,6 +534,77 @@
        }
 
        /**
+        * Recycle or destroy any jobs that have been claimed for too long
+        *
+        * @return integer Number of jobs recycled/deleted
+        */
+       public function recycleAndDeleteStaleJobs() {
+               $now = time();
+               list( $dbw, $scope ) = $this->getMasterDB();
+               $count = 0; // affected rows
+
+               if ( !$dbw->lock( "jobqueue-recycle-{$this->type}", __METHOD__, 
1 ) ) {
+                       return $count; // already in progress
+               }
+
+               // Remove claims on jobs acquired for too long if enabled...
+               if ( $this->claimTTL > 0 ) {
+                       $claimCutoff = $dbw->timestamp( $now - $this->claimTTL 
);
+                       // Get the IDs of jobs that have be claimed but not 
finished after too long.
+                       // These jobs can be recycled into the queue by 
expiring the claim. Selecting
+                       // the IDs first means that the UPDATE can be done by 
primary key (less deadlocks).
+                       $res = $dbw->select( 'job', 'job_id',
+                               array(
+                                       'job_cmd' => $this->type,
+                                       "job_token != {$dbw->addQuotes( '' )}", 
// was acquired
+                                       "job_token_timestamp < 
{$dbw->addQuotes( $claimCutoff )}", // stale
+                                       "job_attempts < {$dbw->addQuotes( 
$this->maxTries )}" ), // retries left
+                               __METHOD__
+                       );
+                       $ids = array_map( function( $o ) { return $o->job_id; 
}, iterator_to_array( $res ) );
+                       if ( count( $ids ) ) {
+                               // Reset job_token for these jobs so that other 
runners will pick them up.
+                               // Set the timestamp to the current time, as it 
is useful to now that the job
+                               // was already tried before (the timestamp 
becomes the "released" time).
+                               $dbw->update( 'job',
+                                       array(
+                                               'job_token' => '',
+                                               'job_token_timestamp' => 
$dbw->timestamp( $now ) ), // time of release
+                                       array(
+                                               'job_id' => $ids ),
+                                       __METHOD__
+                               );
+                               $count += $dbw->affectedRows();
+                               wfIncrStats( 'job-recycle', 
$dbw->affectedRows() );
+                               $this->cache->set( $this->getCacheKey( 'empty' 
), 'false', self::CACHE_TTL_LONG );
+                       }
+               }
+
+               // Just destroy any stale jobs...
+               $pruneCutoff = $dbw->timestamp( $now - self::MAX_AGE_PRUNE );
+               $conds = array(
+                       'job_cmd' => $this->type,
+                       "job_token != {$dbw->addQuotes( '' )}", // was acquired
+                       "job_token_timestamp < {$dbw->addQuotes( $pruneCutoff 
)}" // stale
+               );
+               if ( $this->claimTTL > 0 ) { // only prune jobs attempted too 
many times...
+                       $conds[] = "job_attempts >= {$dbw->addQuotes( 
$this->maxTries )}";
+               }
+               // Get the IDs of jobs that are considered stale and should be 
removed. Selecting
+               // the IDs first means that the UPDATE can be done by primary 
key (less deadlocks).
+               $res = $dbw->select( 'job', 'job_id', $conds, __METHOD__ );
+               $ids = array_map( function( $o ) { return $o->job_id; }, 
iterator_to_array( $res ) );
+               if ( count( $ids ) ) {
+                       $dbw->delete( 'job', array( 'job_id' => $ids ), 
__METHOD__ );
+                       $count += $dbw->affectedRows();
+               }
+
+               $dbw->unlock( "jobqueue-recycle-{$this->type}", __METHOD__ );
+
+               return $count;
+       }
+
+       /**
         * @return Array (DatabaseBase, ScopedCallback)
         */
        protected function getSlaveDB() {

-- 
To view, visit https://gerrit.wikimedia.org/r/58317
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Iabb792cc78dd31860cc351c0375cbc38fc0d4aea
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Aaron Schulz <asch...@wikimedia.org>
Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org>
Gerrit-Reviewer: IAlex <coderev...@emsenhuber.ch>
Gerrit-Reviewer: Reedy <re...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to