From a1789ddde42033f1b05cc4929491214ee6e79383 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Thu, 17 Dec 2015 09:15:42 +0100 Subject: Update to MediaWiki 1.26.0 --- includes/jobqueue/jobs/EnqueueJob.php | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'includes/jobqueue/jobs/EnqueueJob.php') diff --git a/includes/jobqueue/jobs/EnqueueJob.php b/includes/jobqueue/jobs/EnqueueJob.php index 46fb2aa7..c7ee9b65 100644 --- a/includes/jobqueue/jobs/EnqueueJob.php +++ b/includes/jobqueue/jobs/EnqueueJob.php @@ -40,13 +40,13 @@ final class EnqueueJob extends Job { * @param Title $title * @param array $params Job parameters */ - function __construct( $title, $params ) { + function __construct( Title $title, array $params ) { parent::__construct( 'enqueue', $title, $params ); } /** - * @param Job|JobSpecification|array $jobs - * @return JobRouteJob + * @param JobSpecification|JobSpecification[] $jobs + * @return EnqueueJob */ public static function newFromLocalJobs( $jobs ) { $jobs = is_array( $jobs ) ? $jobs : array( $jobs ); @@ -56,9 +56,11 @@ final class EnqueueJob extends Job { /** * @param array $jobsByWiki Map of (wiki => JobSpecification list) - * @return JobRouteJob + * @return EnqueueJob */ public static function newFromJobsByWiki( array $jobsByWiki ) { + $deduplicate = true; + $jobMapsByWiki = array(); foreach ( $jobsByWiki as $wiki => $jobs ) { $jobMapsByWiki[$wiki] = array(); @@ -68,10 +70,19 @@ final class EnqueueJob extends Job { } else { throw new InvalidArgumentException( "Jobs must be of type JobSpecification." ); } + $deduplicate = $deduplicate && $job->ignoreDuplicates(); } } - return new self( Title::newMainPage(), array( 'jobsByWiki' => $jobMapsByWiki ) ); + $eJob = new self( + Title::makeTitle( NS_SPECIAL, 'Badtitle/' . __CLASS__ ), + array( 'jobsByWiki' => $jobMapsByWiki ) + ); + // If *all* jobs to be pushed are to be de-duplicated (a common case), then + // de-duplicate this whole job itself to avoid build up in high traffic cases + $eJob->removeDuplicates = $deduplicate; + + return $eJob; } public function run() { -- cgit v1.2.3-54-g00ecf