- $s = q("SELECT COUNT(*) AS `total` FROM `workerqueue` WHERE `executed` <= '%s'", dbesc(NULL_DATE));
- $entries = $s[0]["total"];
+ // Now adding all processes with workerqueue entries
+ $entries = dba::p("SELECT COUNT(*) AS `entries`, `priority` FROM `workerqueue` WHERE NOT `done` GROUP BY `priority`");
+ while ($entry = dba::fetch($entries)) {
+ $processes = dba::p("SELECT COUNT(*) AS `running` FROM `process` INNER JOIN `workerqueue` ON `workerqueue`.`pid` = `process`.`pid` AND NOT `done` WHERE `priority` = ?", $entry["priority"]);
+ if ($process = dba::fetch($processes)) {
+ $listitem[$entry["priority"]] = $entry["priority"].":".$process["running"]."/".$entry["entries"];
+ }
+ dba::close($processes);
+ }
+ dba::close($entries);
+
+ $intervals = array(1, 10, 60);
+ $jobs_per_minute = array();
+ foreach ($intervals AS $interval) {
+ $jobs = dba::p("SELECT COUNT(*) AS `jobs` FROM `workerqueue` WHERE `done` AND `executed` > UTC_TIMESTAMP() - INTERVAL ".intval($interval)." MINUTE");
+ if ($job = dba::fetch($jobs)) {
+ $jobs_per_minute[$interval] = number_format($job['jobs'] / $interval, 0);
+ }
+ dba::close($jobs);
+ }
+ $processlist = ' - jpm: '.implode('/', $jobs_per_minute).' ('.implode(', ', $listitem).')';
+ }