/** @var int Bitfield of JOB_* class constants */
protected $executionFlags = 0;
- /** @var int Job must not be wrapped in the usual explicit LBFactory transaction round */
- const JOB_NO_EXPLICIT_TRX_ROUND = 1;
-
/**
* Create the appropriate object to handle a specific job
*
}
}
- /**
- * @param int $flag JOB_* class constant
- * @return bool
- * @since 1.31
- */
public function hasExecutionFlag( $flag ) {
return ( $this->executionFlags & $flag ) === $flag;
}
: null;
}
- /**
- * @return string|null Id of the request that created this job. Follows
- * jobs recursively, allowing to track the id of the request that started a
- * job when jobs insert jobs which insert other jobs.
- * @since 1.27
- */
public function getRequestId() {
return $this->params['requestId'] ?? null;
}
- /**
- * @return int|null UNIX timestamp of when the job was runnable, or null
- * @since 1.26
- */
public function getReadyTimestamp() {
return $this->getReleaseTimestamp() ?: $this->getQueuedTimestamp();
}
return $this->removeDuplicates;
}
- /**
- * @return bool Whether this job can be retried on failure by job runners
- * @since 1.21
- */
public function allowRetries() {
return true;
}
- /**
- * @return int Number of actually "work items" handled in this job
- * @see $wgJobBackoffThrottling
- * @since 1.23
- */
public function workItemCount() {
return 1;
}
$this->teardownCallbacks[] = $callback;
}
- /**
- * Do any final cleanup after run(), deferred updates, and all DB commits happen
- * @param bool $status Whether the job, its deferred updates, and DB commit all succeeded
- * @since 1.27
- */
public function teardown( $status ) {
foreach ( $this->teardownCallbacks as $callback ) {
call_user_func( $callback, $status );
}
}
- /**
- * @return string
- */
public function toString() {
$paramString = '';
if ( $this->params ) {
* @since 1.33
*/
interface RunnableJob extends IJobSpecification {
+ /** @var int Job must not be wrapped in the usual explicit LBFactory transaction round */
+ const JOB_NO_EXPLICIT_TRX_ROUND = 1;
+
/**
* Run the job
* @return bool Success
* @return mixed|null The prior field value; null if missing
*/
public function setMetadata( $field, $value );
+
+ /**
+ * @param int $flag JOB_* class constant
+ * @return bool
+ * @since 1.31
+ */
+ public function hasExecutionFlag( $flag );
+
+ /**
+ * @return string|null Id of the request that created this job. Follows
+ * jobs recursively, allowing to track the id of the request that started a
+ * job when jobs insert jobs which insert other jobs.
+ * @since 1.27
+ */
+ public function getRequestId();
+
+ /**
+ * @return bool Whether this job can be retried on failure by job runners
+ * @since 1.21
+ */
+ public function allowRetries();
+
+ /**
+ * @return int Number of actually "work items" handled in this job
+ * @see $wgJobBackoffThrottling
+ * @since 1.23
+ */
+ public function workItemCount();
+
+ /**
+ * @return int|null UNIX timestamp of when the job was runnable, or null
+ * @since 1.26
+ */
+ public function getReadyTimestamp();
+
+ /**
+ * Do any final cleanup after run(), deferred updates, and all DB commits happen
+ * @param bool $status Whether the job, its deferred updates, and DB commit all succeeded
+ * @since 1.27
+ */
+ public function tearDown( $status );
+
+ /**
+ * @return string
+ */
+ public function getLastError();
+
+ /**
+ * @return string Debugging string describing the job
+ */
+ public function toString();
}