X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fcronhooks.php;h=4a852935a051a7522804c96e39a84c26b8fb2444;hb=e40c3a9d7c980c4287c273bc12d934ceb8b55fc0;hp=8c70008e453c913e9318184ed859e161ed68eb6a;hpb=a91ce7c0d10ffc59327e3551cf75fd1c264ef646;p=friendica.git diff --git a/include/cronhooks.php b/include/cronhooks.php index 8c70008e45..4a852935a0 100644 --- a/include/cronhooks.php +++ b/include/cronhooks.php @@ -1,88 +1,53 @@ $maxsysload) { - logger('system: load ' . $load . ' too high. Cronhooks deferred to next scheduled run.'); - return; + if (($argc == 2) && is_array($a->hooks) && array_key_exists("cron", $a->hooks)) { + foreach ($a->hooks["cron"] as $hook) { + if ($hook[1] == $argv[1]) { + logger("Calling cron hook '" . $hook[1] . "'", LOGGER_DEBUG); + call_single_hook($a, $name, $hook, $data); + } } + return; } - $last = get_config('system','last_cronhook'); + $last = get_config('system', 'last_cronhook'); - $poll_interval = intval(get_config('system','cronhook_interval')); - if(! $poll_interval) + $poll_interval = intval(get_config('system', 'cronhook_interval')); + if (! $poll_interval) { $poll_interval = 9; + } - if($last) { + if ($last) { $next = $last + ($poll_interval * 60); - if($next > time()) { + if ($next > time()) { logger('cronhook intervall not reached'); 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(); + $a->set_baseurl(get_config('system', 'url')); logger('cronhooks: start'); $d = datetime_convert(); - call_hooks('cron', $d); + if (is_array($a->hooks) && array_key_exists("cron", $a->hooks)) { + foreach ($a->hooks["cron"] as $hook) { + logger("Calling cronhooks for '" . $hook[1] . "'", LOGGER_DEBUG); + proc_run(PRIORITY_MEDIUM, "include/cronhooks.php", $hook[1]); + } + } logger('cronhooks: end'); - set_config('system','last_cronhook', time()); + set_config('system', 'last_cronhook', time()); return; } - -if (array_search(__file__,get_included_files())===0){ - cronhooks_run($_SERVER["argv"],$_SERVER["argc"]); - killme(); -}