MediaWiki REL1_37
IJobSpecification Interface Reference

Interface for serializable objects that describe a job queue task. More...

Inheritance diagram for IJobSpecification:

Public Member Functions

 getDeduplicationInfo ()
 Subclasses may need to override this to make duplication detection work.
 
 getParams ()
 
 getReleaseTimestamp ()
 
 getRootJobParams ()
 
 getType ()
 
 hasRootJobParams ()
 
 ignoreDuplicates ()
 
 isRootJob ()
 

Detailed Description

Interface for serializable objects that describe a job queue task.

A job specification can be inserted into a queue via JobQueue::push(). The specification parameters should be JSON serializable (e.g. no PHP classes). Whatever queue the job specification is pushed into is assumed to have job runners that will eventually pop the job specification from the queue, construct a RunnableJob instance from the specification, and then execute that instance via RunnableJob::run().

Job classes must have a constructor that takes a Title and a parameter array, except when they also implement GenericParameterJob in which case they must only take an array. When reconstructing the job from the job queue, the value returned from getParams() will be passed in as the constructor's array parameter; the title will be constructed from the parameter array's namespace and title fields (when these are omitted, some fallback title will be used).

Since
1.23

Definition at line 42 of file IJobSpecification.php.

Member Function Documentation

◆ getDeduplicationInfo()

IJobSpecification::getDeduplicationInfo ( )

Subclasses may need to override this to make duplication detection work.

The resulting map conveys everything that makes the job unique. This is only checked if ignoreDuplicates() returns true, meaning that duplicate jobs are supposed to be ignored.

Returns
array Map of key/values

Implemented in Job, AssembleUploadChunksJob, CategoryMembershipChangeJob, ClearUserWatchlistJob, HTMLCacheUpdateJob, PublishStashedFileJob, RefreshLinksJob, and JobSpecification.

◆ getParams()

IJobSpecification::getParams ( )
Returns
array Parameters that specify sources, targets, and options for execution

Implemented in Job, and JobSpecification.

Referenced by JobQueueMemory\jobFromSpecInternal().

◆ getReleaseTimestamp()

IJobSpecification::getReleaseTimestamp ( )
Returns
int|null UNIX timestamp to delay running this job until, otherwise null

Implemented in Job, and JobSpecification.

◆ getRootJobParams()

IJobSpecification::getRootJobParams ( )
See also
JobQueue::deduplicateRootJob()
Returns
array
Since
1.26

Implemented in Job, and JobSpecification.

◆ getType()

IJobSpecification::getType ( )
Returns
string Job type that defines what sort of changes this job makes

Implemented in Job, and JobSpecification.

Referenced by JobQueueGroup\ack(), JobQueueGroup\deduplicateRootJob(), and JobQueueMemory\jobFromSpecInternal().

◆ hasRootJobParams()

IJobSpecification::hasRootJobParams ( )
See also
JobQueue::deduplicateRootJob()
Returns
bool
Since
1.22

Implemented in Job, and JobSpecification.

◆ ignoreDuplicates()

IJobSpecification::ignoreDuplicates ( )
Returns
bool Whether only one of each identical set of jobs should be run

Implemented in Job, and JobSpecification.

◆ isRootJob()

IJobSpecification::isRootJob ( )
See also
JobQueue::deduplicateRootJob()
Returns
bool Whether this is job is a root job

Implemented in Job, and JobSpecification.


The documentation for this interface was generated from the following file: