Merge "(bug 29472) kill $wgUseDynamicDates"
[lhc/web/wiklou.git] / maintenance / runJobs.php
index 8d2819d..a78acd5 100644 (file)
@@ -76,6 +76,12 @@ class RunJobs extends Maintenance {
                $n = 0;
 
                $group = JobQueueGroup::singleton();
+               // Handle any required periodic queue maintenance
+               $count = $group->executeReadyPeriodicTasks();
+               if ( $count > 0 ) {
+                       $this->runJobsLog( "Executed $count periodic queue task(s)." );
+               }
+
                do {
                        $job = ( $type === false )
                                ? $group->pop( JobQueueGroup::TYPE_DEFAULT, JobQueueGroup::USE_CACHE )
@@ -85,7 +91,9 @@ class RunJobs extends Maintenance {
                                $t = microtime( true );
                                $this->runJobsLog( $job->toString() . " STARTING" );
                                $status = $job->run();
-                               $group->ack( $job ); // done
+                               if ( $status ) {
+                                       $group->ack( $job ); // done
+                               }
                                $t = microtime( true ) - $t;
                                $timeMs = intval( $t * 1000 );
                                if ( !$status ) {
@@ -101,7 +109,7 @@ class RunJobs extends Maintenance {
                                        break;
                                }
                                // Don't let any slaves/backups fall behind...
-                               $group->get( $type )->waitForBackups();
+                               $group->get( $job->getType() )->waitForBackups();
                        }
                } while ( $job ); // stop when there are no jobs
        }