summaryrefslogtreecommitdiff
path: root/maintenance/runJobs.php
diff options
context:
space:
mode:
Diffstat (limited to 'maintenance/runJobs.php')
-rw-r--r--maintenance/runJobs.php18
1 files changed, 12 insertions, 6 deletions
diff --git a/maintenance/runJobs.php b/maintenance/runJobs.php
index 3864e3c6..3c5d28be 100644
--- a/maintenance/runJobs.php
+++ b/maintenance/runJobs.php
@@ -52,9 +52,7 @@ class RunJobs extends Maintenance {
}
public function execute() {
- if ( wfReadOnly() ) {
- $this->error( "Unable to run jobs; the wiki is in read-only mode.", 1 ); // die
- }
+ global $wgCommandLineMode;
if ( $this->hasOption( 'procs' ) ) {
$procs = intval( $this->getOption( 'procs' ) );
@@ -68,21 +66,29 @@ class RunJobs extends Maintenance {
}
}
- $json = ( $this->getOption( 'result' ) === 'json' );
+ $outputJSON = ( $this->getOption( 'result' ) === 'json' );
+
+ // Enable DBO_TRX for atomicity; JobRunner manages transactions
+ // and works well in web server mode already (@TODO: this is a hack)
+ $wgCommandLineMode = false;
$runner = new JobRunner( LoggerFactory::getInstance( 'runJobs' ) );
- if ( !$json ) {
+ if ( !$outputJSON ) {
$runner->setDebugHandler( array( $this, 'debugInternal' ) );
}
+
$response = $runner->run( array(
'type' => $this->getOption( 'type', false ),
'maxJobs' => $this->getOption( 'maxjobs', false ),
'maxTime' => $this->getOption( 'maxtime', false ),
'throttle' => $this->hasOption( 'nothrottle' ) ? false : true,
) );
- if ( $json ) {
+
+ if ( $outputJSON ) {
$this->output( FormatJson::encode( $response, true ) );
}
+
+ $wgCommandLineMode = true;
}
/**