*/
public static function factory( $command, Title $title, $params = false, $id = 0 ) {
global $wgJobClasses;
- if( isset( $wgJobClasses[$command] ) ) {
+ if ( isset( $wgJobClasses[$command] ) ) {
$class = $wgJobClasses[$command];
return new $class( $title, $params, $id );
}
*
* @param array $jobs of Job objects
* @return bool
- * @deprecated 1.21
+ * @deprecated since 1.21
*/
public static function batchInsert( $jobs ) {
return JobQueueGroup::singleton()->push( $jobs );
*
* @param array $jobs of Job objects
* @return bool
- * @deprecated 1.21
+ * @deprecated since 1.21
*/
public static function safeBatchInsert( $jobs ) {
return JobQueueGroup::singleton()->push( $jobs, JobQueue::QOS_ATOMIC );
*
* @param $type string
* @return Job|bool Returns false if there are no jobs
- * @deprecated 1.21
+ * @deprecated since 1.21
*/
public static function pop_type( $type ) {
return JobQueueGroup::singleton()->get( $type )->pop();
* This is subject to $wgJobTypesExcludedFromDefaultQueue.
*
* @return Job or false if there's no jobs
- * @deprecated 1.21
+ * @deprecated since 1.21
*/
public static function pop() {
return JobQueueGroup::singleton()->pop();
/**
* @return integer May be 0 for jobs stored outside the DB
+ * @deprecated since 1.22
*/
public function getId() {
return $this->id;
/**
* @return bool Whether this job can be retried on failure by job runners
+ * @since 1.21
*/
public function allowRetries() {
return true;
}
/**
- * Subclasses may need to override this to make duplication detection work
+ * 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.
*
* @return Array Map of key/values
+ * @since 1.21
*/
public function getDeduplicationInfo() {
$info = array(
- 'type' => $this->getType(),
+ 'type' => $this->getType(),
'namespace' => $this->getTitle()->getNamespace(),
- 'title' => $this->getTitle()->getDBkey(),
- 'params' => $this->getParams()
+ 'title' => $this->getTitle()->getDBkey(),
+ 'params' => $this->getParams()
);
if ( is_array( $info['params'] ) ) {
// Identical jobs with different "root" jobs should count as duplicates
}
/**
+ * @see JobQueue::deduplicateRootJob()
* @param string $key A key that identifies the task
* @return Array
+ * @since 1.21
*/
public static function newRootJobParams( $key ) {
return array(
}
/**
+ * @see JobQueue::deduplicateRootJob()
* @return Array
+ * @since 1.21
*/
public function getRootJobParams() {
return array(
);
}
+ /**
+ * @see JobQueue::deduplicateRootJob()
+ * @return bool
+ * @since 1.22
+ */
+ public function hasRootJobParams() {
+ return isset( $this->params['rootJobSignature'] )
+ && isset( $this->params['rootJobTimestamp'] );
+ }
+
/**
* Insert a single job into the queue.
* @return bool true on success
- * @deprecated 1.21
+ * @deprecated since 1.21
*/
public function insert() {
return JobQueueGroup::singleton()->push( $this );