X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fcronhooks.php;h=c0549dfff8a54734e00444dbe9df6197ef3af504;hb=b4e8ec2806e41dff138d4f28d2c13ee9d08807cc;hp=27cf642b22776d238fff3447a061321c6799993d;hpb=5b4944fe8e951776542a0401a6766e92ff384020;p=friendica.git diff --git a/include/cronhooks.php b/include/cronhooks.php index 27cf642b22..c0549dfff8 100644 --- a/include/cronhooks.php +++ b/include/cronhooks.php @@ -9,31 +9,59 @@ function cronhooks_run(&$argv, &$argc){ if(is_null($a)) { $a = new App; } - + if(is_null($db)) { @include(".htconfig.php"); - require_once("dba.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.'); + return; + } + } + + $lockpath = get_lockpath(); + if ($lockpath != '') { + $pidfile = new pidfile($lockpath, 'cronhooks'); + if($pidfile->is_already_running()) { + logger("cronhooks: Already running"); + if ($pidfile->running_time() > 19*60) { + $pidfile->kill(); + logger("cronhooks: killed stale process"); + // Calling a new instance + proc_run('php','include/cronhooks.php'); + } + exit; + } + } + $a->set_baseurl(get_config('system','url')); load_hooks(); logger('cronhooks: start'); - $d = datetime_convert(); call_hooks('cron', $d); + logger('cronhooks: end'); + return; }