Merge pull request #7509 from annando/admin-queue

Improved calculation of deferred tasks
This commit is contained in:
Hypolite Petovan 2019-08-13 06:40:21 -04:00 committed by GitHub
commit 8b00f48c47
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -186,7 +186,7 @@ class Worker
private static function deferredEntries()
{
$stamp = (float)microtime(true);
$count = DBA::count('workerqueue', ["NOT `done` AND `pid` = 0 AND `next_try` > ?", DateTimeFormat::utcNow()]);
$count = DBA::count('workerqueue', ["NOT `done` AND `pid` = 0 AND `retrial` > ?", 0]);
self::$db_duration += (microtime(true) - $stamp);
self::$db_duration_count += (microtime(true) - $stamp);
return $count;
@ -686,10 +686,8 @@ class Worker
DBA::close($processes);
}
DBA::close($jobs);
$entries = $deferred + $waiting_processes;
} else {
$entries = self::totalEntries();
$waiting_processes = max(0, $entries - $deferred);
$waiting_processes = self::totalEntries();
$stamp = (float)microtime(true);
$jobs = DBA::p("SELECT COUNT(*) AS `running`, `priority` FROM `process` INNER JOIN `workerqueue` ON `workerqueue`.`pid` = `process`.`pid` AND NOT `done` GROUP BY `priority` ORDER BY `priority`");
self::$db_duration += (microtime(true) - $stamp);