If the load is too high, now not only the poller but also the page delivery will stop.
This commit is contained in:
parent
82abc32a14
commit
ae172a9cec
4 changed files with 17 additions and 3 deletions
|
@ -30,7 +30,7 @@ function cronhooks_run(&$argv, &$argc){
|
||||||
if(function_exists('sys_getloadavg')) {
|
if(function_exists('sys_getloadavg')) {
|
||||||
$load = sys_getloadavg();
|
$load = sys_getloadavg();
|
||||||
if(intval($load[0]) > $maxsysload) {
|
if(intval($load[0]) > $maxsysload) {
|
||||||
logger('system: load ' . $load . ' too high. Poller deferred to next scheduled run.');
|
logger('system: load ' . $load[0] . ' too high. Cronhooks deferred to next scheduled run.');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,7 @@ function delivery_run(&$argv, &$argc){
|
||||||
if(function_exists('sys_getloadavg')) {
|
if(function_exists('sys_getloadavg')) {
|
||||||
$load = sys_getloadavg();
|
$load = sys_getloadavg();
|
||||||
if(intval($load[0]) > $maxsysload) {
|
if(intval($load[0]) > $maxsysload) {
|
||||||
logger('system: load ' . $load . ' too high. Delivery deferred to next queue run.');
|
logger('system: load ' . $load[0] . ' too high. Delivery deferred to next queue run.');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ function poller_run(&$argv, &$argc){
|
||||||
if(function_exists('sys_getloadavg')) {
|
if(function_exists('sys_getloadavg')) {
|
||||||
$load = sys_getloadavg();
|
$load = sys_getloadavg();
|
||||||
if(intval($load[0]) > $maxsysload) {
|
if(intval($load[0]) > $maxsysload) {
|
||||||
logger('system: load ' . $load . ' too high. Poller deferred to next scheduled run.');
|
logger('system: load ' . $load[0] . ' too high. Poller deferred to next scheduled run.');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
14
index.php
14
index.php
|
@ -53,6 +53,20 @@ if(!$install) {
|
||||||
load_config('config');
|
load_config('config');
|
||||||
load_config('system');
|
load_config('system');
|
||||||
|
|
||||||
|
$maxsysload = intval(get_config('system','maxloadavg'));
|
||||||
|
if($maxsysload < 1)
|
||||||
|
$maxsysload = 50;
|
||||||
|
if(function_exists('sys_getloadavg')) {
|
||||||
|
$load = sys_getloadavg();
|
||||||
|
if(intval($load[0]) > $maxsysload) {
|
||||||
|
logger('system: load ' . $load[0] . ' too high. Service Temporarily Unavailable.');
|
||||||
|
header($_SERVER["SERVER_PROTOCOL"].' 503 Service Temporarily Unavailable');
|
||||||
|
header('Retry-After: 300');
|
||||||
|
die("System is currently unavailable. Please try again later");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (get_config('system','force_ssl') AND ($a->get_scheme() == "http") AND
|
if (get_config('system','force_ssl') AND ($a->get_scheme() == "http") AND
|
||||||
(intval(get_config('system','ssl_policy')) == SSL_POLICY_FULL) AND
|
(intval(get_config('system','ssl_policy')) == SSL_POLICY_FULL) AND
|
||||||
(substr($a->get_baseurl(), 0, 8) == "https://")) {
|
(substr($a->get_baseurl(), 0, 8) == "https://")) {
|
||||||
|
|
Loading…
Reference in a new issue