$queue = MediaWikiServices::getInstance()->getJobQueueGroup(); * > $job = new NullJob( [ 'lives' => 10 ] ); * > $queue->push( $job ); * @endcode * * You can confirm the job has been enqueued via maintenance/showJobs.php: * * @code * $ php maintenance/showJobs.php --group * null: 1 queue; 0 claimed (0 active, 0 abandoned) * @endcode * * @ingroup JobQueue */ class NullJob extends Job implements GenericParameterJob { /** * @param array $params Job parameters (lives, usleep) */ public function __construct( array $params ) { parent::__construct( 'null', $params ); if ( !isset( $this->params['lives'] ) ) { $this->params['lives'] = 1; } if ( !isset( $this->params['usleep'] ) ) { $this->params['usleep'] = 0; } $this->removeDuplicates = !empty( $this->params['removeDuplicates'] ); } public function run() { if ( $this->params['usleep'] > 0 ) { usleep( $this->params['usleep'] ); } if ( $this->params['lives'] > 1 ) { $params = $this->params; $params['lives']--; $job = new self( $params ); MediaWikiServices::getInstance()->getJobQueueGroup()->push( $job ); } return true; } }