X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fworker.php;h=947656ab7c2eebd4bab04384b906c939544ede6d;hb=db04a78d844f5fc528bf7ffb2c2c04767ab64b5f;hp=1375799667f502a4bb8fc90ffb12047812e04d76;hpb=636a0333646b0ca941a3eadaa246002001915303;p=friendica.git diff --git a/mod/worker.php b/mod/worker.php index 1375799667..947656ab7c 100644 --- a/mod/worker.php +++ b/mod/worker.php @@ -5,8 +5,8 @@ */ require_once("include/poller.php"); -use \Friendica\Core\Config; -use \Friendica\Core\PConfig; +use Friendica\Core\Config; +use Friendica\Core\PConfig; function worker_init($a){ @@ -14,6 +14,13 @@ function worker_init($a){ return; } + // We don't need the following lines if we can execute background jobs. + // So we just wake up the worker if it sleeps. + if (function_exists("proc_open")) { + call_worker_if_idle(); + return; + } + clear_worker_processes(); $workers = q("SELECT COUNT(*) AS `processes` FROM `process` WHERE `command` = 'worker.php'"); @@ -29,11 +36,20 @@ function worker_init($a){ call_worker(); if ($r = poller_worker_process()) { - poller_execute($r[0]); + + // On most configurations this parameter wouldn't have any effect. + // But since it doesn't destroy anything, we just try to get more execution time in any way. + set_time_limit(0); + + if (poller_claim_process($r[0])) { + poller_execute($r[0]); + } } call_worker(); + poller_unclaim_process(); + $a->end_process(); logger("Front end worker ended: ".getmypid());