X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FrunJobs.php;h=3c5d28be9f0d22a68de54f6f7cf435f4094c57fc;hb=192f1018e45095580c39b0894a03a9428994b139;hp=3864e3c607bb5e2f6754038223d58100214bcb06;hpb=6dae212c2e8e5eab4340144a7097e075af4dbf8a;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/runJobs.php b/maintenance/runJobs.php index 3864e3c607..3c5d28be9f 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; } /**