X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fworker.php;h=947656ab7c2eebd4bab04384b906c939544ede6d;hb=2894214347953f0d8f288ae1999688f2396d67a5;hp=3fb86dd5b2dadf0d82f7cd924c0049c7ad5aab44;hpb=efb2df41ba7cb19383ea61dd1868130992d05378;p=friendica.git diff --git a/mod/worker.php b/mod/worker.php index 3fb86dd5b2..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'"); @@ -34,11 +41,15 @@ function worker_init($a){ // But since it doesn't destroy anything, we just try to get more execution time in any way. set_time_limit(0); - poller_execute($r[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());