]> git.mxchange.org Git - friendica.git/blobdiff - mod/worker.php
fix some method names (camelcase) in Probe.php and Lock.php
[friendica.git] / mod / worker.php
index 1d1ab2af33d407a2f7cbabb10d372db4bc9731f0..947656ab7c2eebd4bab04384b906c939544ede6d 100644 (file)
@@ -1,12 +1,23 @@
 <?php
+/**
+ * @file mod/worker.php
+ * @brief Module for running the poller as frontend process
+ */
 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){
 
-       if (!get_config("system", "frontend_worker")) {
+       if (!Config::get("system", "frontend_worker")) {
+               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;
        }
 
@@ -25,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());