Merge pull request #6596 from annando/worker-jpm
Separate config options to display the worker jobs per minute
This commit is contained in:
commit
e484678187
2 changed files with 18 additions and 10 deletions
|
@ -393,6 +393,10 @@ return [
|
|||
// Number of worker tasks that are fetched in a single query.
|
||||
'worker_fetch_limit' => 1,
|
||||
|
||||
// worker_jpm (Boolean)
|
||||
// If enabled, it prints out the jobs per minute.
|
||||
'worker_jpm' => false,
|
||||
|
||||
// worker_load_exponent (Integer)
|
||||
// Default 3, which allows only 25% of the maximum worker queues when server load reaches around 37% of maximum load.
|
||||
// For a linear response where 25% of worker queues are allowed at 75% of maximum load, set this to 1.
|
||||
|
|
|
@ -657,6 +657,19 @@ class Worker
|
|||
|
||||
$processlist = '';
|
||||
|
||||
if (Config::get('system', 'worker_jpm')) {
|
||||
$intervals = [1, 10, 60];
|
||||
$jobs_per_minute = [];
|
||||
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);
|
||||
}
|
||||
|
||||
if (Config::get('system', 'worker_debug')) {
|
||||
// Create a list of queue entries grouped by their priority
|
||||
$listitem = [];
|
||||
|
@ -686,16 +699,7 @@ class Worker
|
|||
}
|
||||
DBA::close($entries);
|
||||
|
||||
$intervals = [1, 10, 60];
|
||||
$jobs_per_minute = [];
|
||||
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).')';
|
||||
$processlist .= ' ('.implode(', ', $listitem).')';
|
||||
}
|
||||
|
||||
$entries = self::totalEntries();
|
||||
|
|
Loading…
Reference in a new issue