X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fcronhooks.php;h=b6cf0e72378763d6b3e5ac697672dce67438ea02;hb=b9da831138667700d465f15ad50df650ab4da427;hp=cf1d13765faf56d8d55b49bc5d6796cc677ede02;hpb=84189ac775b3e1bc36d9e9d8945624c1bca7fb55;p=friendica.git diff --git a/include/cronhooks.php b/include/cronhooks.php index cf1d13765f..b6cf0e7237 100644 --- a/include/cronhooks.php +++ b/include/cronhooks.php @@ -11,36 +11,37 @@ function cronhooks_run(&$argv, &$argc){ } if(is_null($db)) { - @include(".htconfig.php"); - require_once("include/dba.php"); - $db = new dba($db_host, $db_user, $db_pass, $db_data); - unset($db_host, $db_user, $db_pass, $db_data); - }; + @include(".htconfig.php"); + require_once("include/dba.php"); + $db = new dba($db_host, $db_user, $db_pass, $db_data); + unset($db_host, $db_user, $db_pass, $db_data); + }; require_once('include/session.php'); require_once('include/datetime.php'); - require_once('include/pidfile.php'); 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.'); + // Don't check this stuff if the function is called by the poller + if (App::callstack() != "poller_run") { + if (App::maxload_reached()) + return; + if (App::is_already_running('cronhooks', 'include/cronhooks.php', 1140)) return; - } } - $lockpath = get_config('system','lockpath'); - if ($lockpath != '') { - $pidfile = new pidfile($lockpath, 'cron.lck'); - if($pidfile->is_already_running()) { - logger("cronhooks: Already running"); - exit; + $last = get_config('system','last_cronhook'); + + $poll_interval = intval(get_config('system','cronhook_interval')); + if(! $poll_interval) + $poll_interval = 9; + + if($last) { + $next = $last + ($poll_interval * 60); + if($next > time()) { + logger('cronhook intervall not reached'); + return; } } @@ -50,15 +51,18 @@ function cronhooks_run(&$argv, &$argc){ logger('cronhooks: start'); - $d = datetime_convert(); call_hooks('cron', $d); + logger('cronhooks: end'); + + set_config('system','last_cronhook', time()); + return; } if (array_search(__file__,get_included_files())===0){ - cronhooks_run($argv,$argc); - killme(); + cronhooks_run($_SERVER["argv"],$_SERVER["argc"]); + killme(); }