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
|
@ -393,6 +393,10 @@ return [
|
||||||
// Number of worker tasks that are fetched in a single query.
|
// Number of worker tasks that are fetched in a single query.
|
||||||
'worker_fetch_limit' => 1,
|
'worker_fetch_limit' => 1,
|
||||||
|
|
||||||
|
// worker_jpm (Boolean)
|
||||||
|
// If enabled, it prints out the jobs per minute.
|
||||||
|
'worker_jpm' => false,
|
||||||
|
|
||||||
// worker_load_exponent (Integer)
|
// worker_load_exponent (Integer)
|
||||||
// Default 3, which allows only 25% of the maximum worker queues when server load reaches around 37% of maximum load.
|
// 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.
|
// 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 = '';
|
$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')) {
|
if (Config::get('system', 'worker_debug')) {
|
||||||
// Create a list of queue entries grouped by their priority
|
// Create a list of queue entries grouped by their priority
|
||||||
$listitem = [];
|
$listitem = [];
|
||||||
|
@ -686,16 +699,7 @@ class Worker
|
||||||
}
|
}
|
||||||
DBA::close($entries);
|
DBA::close($entries);
|
||||||
|
|
||||||
$intervals = [1, 10, 60];
|
$processlist .= ' ('.implode(', ', $listitem).')';
|
||||||
$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).')';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$entries = self::totalEntries();
|
$entries = self::totalEntries();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user