Made JobRunner bail sooner for bogus job --type parameters
authorAaron Schulz <aschulz@wikimedia.org>
Tue, 3 Mar 2015 20:20:12 +0000 (12:20 -0800)
committerAaron Schulz <aschulz@wikimedia.org>
Tue, 3 Mar 2015 20:20:12 +0000 (12:20 -0800)
Change-Id: I1259682b8a6543e76f1c9a4d99324b457115a277

includes/jobqueue/JobRunner.php

index 091e648..edb4911 100644 (file)
@@ -87,6 +87,8 @@ class JobRunner implements LoggerAwareInterface {
         * @return array Summary response that can easily be JSON serialized
         */
        public function run( array $options ) {
+               global $wgJobClasses;
+
                $response = array( 'jobs' => array(), 'reached' => 'none-ready' );
 
                $type = isset( $options['type'] ) ? $options['type'] : false;
@@ -94,6 +96,11 @@ class JobRunner implements LoggerAwareInterface {
                $maxTime = isset( $options['maxTime'] ) ? $options['maxTime'] : false;
                $noThrottle = isset( $options['throttle'] ) && !$options['throttle'];
 
+               if ( $type !== false && !isset( $wgJobClasses[$type] ) ) {
+                       $response['reached'] = 'none-possible';
+                       return $response;
+               }
+
                $group = JobQueueGroup::singleton();
                // Handle any required periodic queue maintenance
                $count = $group->executeReadyPeriodicTasks();