X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/exercices/journal.php?a=blobdiff_plain;f=maintenance%2FrunJobs.php;h=dc9c7632a66cf55c9a86bbba6254c40384e8310d;hb=35b2d649a9a9ebf7f5e3f8b63180d1b7626d8c3a;hp=cd657ac2c1361d01d62073c8436b0aa83068b11a;hpb=2f406cc6adb30bd3ae1449589e809e108dba10bc;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/runJobs.php b/maintenance/runJobs.php index cd657ac2c1..dc9c7632a6 100644 --- a/maintenance/runJobs.php +++ b/maintenance/runJobs.php @@ -36,6 +36,7 @@ class RunJobs extends Maintenance { $this->addOption( 'maxtime', 'Maximum amount of wall-clock time', false, true ); $this->addOption( 'type', 'Type of job to run', false, true ); $this->addOption( 'procs', 'Number of processes to use', false, true ); + $this->addOption( 'nothrottle', 'Ignore job throttling configuration', false, false ); } public function memoryLimit() { @@ -66,6 +67,7 @@ class RunJobs extends Maintenance { $type = $this->getOption( 'type', false ); $maxJobs = $this->getOption( 'maxjobs', false ); $maxTime = $this->getOption( 'maxtime', false ); + $noThrottle = $this->hasOption( 'nothrottle' ); $startTime = time(); $group = JobQueueGroup::singleton(); @@ -83,10 +85,12 @@ class RunJobs extends Maintenance { $flags = JobQueueGroup::USE_CACHE; $lastTime = time(); // time since last slave check do { + $backoffs = array_filter( $backoffs, $backoffExpireFunc ); + $blacklist = $noThrottle ? array() : array_keys( $backoffs ); if ( $type === false ) { - $backoffs = array_filter( $backoffs, $backoffExpireFunc ); - $blacklist = array_keys( $backoffs ); $job = $group->pop( JobQueueGroup::TYPE_DEFAULT, $flags, $blacklist ); + } elseif ( in_array( $type, $blacklist ) ) { + $job = false; // requested queue in backoff state } else { $job = $group->pop( $type ); // job from a single queue }