3) ? $maxqueueworkers : 4;
set_config('queueworker', 'max_queueworkers', $maxqueueworkers);
$maxworkerage = intval($_POST['queueworker_max_age']);
$maxworkerage = ($maxworkerage >= 120) ? $maxworkerage : 300;
set_config('queueworker', 'queueworker_max_age', $maxworkerage);
$queueworkersleep = intval($_POST['queue_worker_sleep']);
$queueworkersleep = ($queueworkersleep > 100) ? $queueworkersleep : 100;
set_config('queueworker', 'queue_worker_sleep', $queueworkersleep);
goaway(z_root() . '/admin/queueworker');
}
function get() {
$content = "
Queue Status
\n";
$r = q('select count(*) as total from workerq');
$content .= "There are " . $r[0]['total'] . " queue items to be processed.
";
$r = dbq("select count(distinct workerq_reservationid) as qworkers from workerq where workerq_reservationid is not null");
$content .= "Active workers: " . $r[0]['qworkers'] . "
";
$r = dbq("select workerq_cmd, count(*) as total from workerq where true group by workerq_cmd");
if ($r) {
$content .= "Work items
";
foreach($r as $rr) {
$content .= $rr['workerq_cmd'] . ': ' . $rr['total'] . '
';
}
}
$maxqueueworkers = get_config('queueworker', 'max_queueworkers', 4);
$maxqueueworkers = ($maxqueueworkers > 3) ? $maxqueueworkers : 4;
$sc = '';
$sc .= replace_macros(get_markup_template('field_input.tpl'), [
'$field' => [
'queueworker_maxworkers',
t('Max queueworker threads'),
$maxqueueworkers,
t('Minimum 4, default 4')
]
]);
$workermaxage = get_config('queueworker', 'queueworker_max_age');
$workermaxage = ($workermaxage >= 120) ? $workermaxage : 300;
$sc .= replace_macros(get_markup_template('field_input.tpl'), [
'$field' => [
'queueworker_max_age',
t('Assume workers dead after'),
$workermaxage,
t('Minimum 120, default 300 seconds')
]
]);
$queueworkersleep = get_config('queueworker', 'queue_worker_sleep');
$queueworkersleep = ($queueworkersleep > 100) ? $queueworkersleep : 100;
$sc .= replace_macros(get_markup_template('field_input.tpl'), [
'$field' => [
'queue_worker_sleep',
t('Pause before starting next task'),
$queueworkersleep,
t('Minimum 100, default 100 microseconds')
]
]);
$tpl = get_markup_template('settings_addon.tpl');
$content .= replace_macros($tpl, [
'$action_url' => 'queueworker',
'$form_security_token' => get_form_security_token('queueworker'),
'$title' => t('Queueworker Settings'),
'$content' => $sc,
'$baseurl' => z_root(),
'$submit' => t('Save')
]
);
return $content;
}
}