diff --git a/include/cronhooks.php b/include/cronhooks.php index 15d49fe547..cf1d13765f 100644 --- a/include/cronhooks.php +++ b/include/cronhooks.php @@ -9,7 +9,7 @@ function cronhooks_run(&$argv, &$argc){ if(is_null($a)) { $a = new App; } - + if(is_null($db)) { @include(".htconfig.php"); require_once("include/dba.php"); @@ -24,6 +24,17 @@ function cronhooks_run(&$argv, &$argc){ load_config('config'); 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 . ' too high. Poller deferred to next scheduled run.'); + return; + } + } + $lockpath = get_config('system','lockpath'); if ($lockpath != '') { $pidfile = new pidfile($lockpath, 'cron.lck'); @@ -38,7 +49,7 @@ function cronhooks_run(&$argv, &$argc){ load_hooks(); logger('cronhooks: start'); - + $d = datetime_convert();