aboutsummaryrefslogtreecommitdiffstats
path: root/includes/jobqueue
diff options
context:
space:
mode:
Diffstat (limited to 'includes/jobqueue')
-rw-r--r--includes/jobqueue/Job.php10
-rw-r--r--includes/jobqueue/JobRunner.php2
2 files changed, 7 insertions, 5 deletions
diff --git a/includes/jobqueue/Job.php b/includes/jobqueue/Job.php
index bbd0ddb5f8df..f814ceeb1b8b 100644
--- a/includes/jobqueue/Job.php
+++ b/includes/jobqueue/Job.php
@@ -301,7 +301,9 @@ abstract class Job implements IJobSpecification {
}
/**
- * @param callable $callback
+ * @param callable $callback A function with one parameter, the success status, which will be
+ * false if the job failed or it succeeded but the DB changes could not be committed or
+ * any deferred updates threw an exception. (This parameter was added in 1.28.)
* @since 1.27
*/
protected function addTeardownCallback( $callback ) {
@@ -310,12 +312,12 @@ abstract class Job implements IJobSpecification {
/**
* 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() {
+ public function teardown( $status ) {
foreach ( $this->teardownCallbacks as $callback ) {
- call_user_func( $callback );
+ call_user_func( $callback, $status );
}
}
diff --git a/includes/jobqueue/JobRunner.php b/includes/jobqueue/JobRunner.php
index ed3aa9af69ef..84ded8d94ede 100644
--- a/includes/jobqueue/JobRunner.php
+++ b/includes/jobqueue/JobRunner.php
@@ -283,7 +283,7 @@ class JobRunner implements LoggerAwareInterface {
}
// Always attempt to call teardown() even if Job throws exception.
try {
- $job->teardown();
+ $job->teardown( $status );
} catch ( Exception $e ) {
MWExceptionHandler::logException( $e );
}