44 parent::__construct(
'enqueue',
$params );
52 $jobs = is_array( $jobs ) ? $jobs : [ $jobs ];
66 $jobMapsByDomain = [];
67 foreach ( $jobsByDomain as $domain => $jobs ) {
68 $jobMapsByDomain[$domain] = [];
69 foreach ( $jobs as
$job ) {
71 $jobMapsByDomain[$domain][] =
$job->toSerializableArray();
73 throw new InvalidArgumentException(
"Jobs must be of type JobSpecification." );
75 $deduplicate = $deduplicate &&
$job->ignoreDuplicates();
79 $eJob =
new self( [
'jobsByDomain' => $jobMapsByDomain ] );
82 $eJob->removeDuplicates = $deduplicate;
96 public function run() {
97 $jobsByDomain = $this->params[
'jobsByDomain'] ?? $this->params[
'jobsByWiki'];
99 $jobQueueGroupFactory = MediaWikiServices::getInstance()->getJobQueueGroupFactory();
100 foreach ( $jobsByDomain as $domain => $jobMaps ) {
102 foreach ( $jobMaps as $jobMap ) {
105 $jobQueueGroupFactory->makeJobQueueGroup( $domain )->push( $jobSpecs );
Router job that takes jobs and enqueues them to their proper queues.
static newFromJobsByWiki(array $jobsByWiki)
static newFromLocalJobs( $jobs)
__construct(array $params)
Callers should use the factory methods instead.
static newFromJobsByDomain(array $jobsByDomain)
Job queue task description base code.
static newFromArray(array $map)
Class to both describe a background job and handle jobs.
array $params
Array of job parameters.
static getCurrentWikiDbDomain()
Interface for generic jobs only uses the parameters field and are JSON serializable.
if(count( $args)< 1) $job