X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fworker.php;h=23dfd6e0004ba7cc46ae7189270a856c40776abc;hb=f4c94236c5ffea5ddd369b073aeec44320a137df;hp=1bd58807895fab1ae5c6782964925ab98151774d;hpb=c845415a99ebc348103815a7b2c55b15c75cdd24;p=friendica.git diff --git a/mod/worker.php b/mod/worker.php index 1bd5880789..23dfd6e000 100644 --- a/mod/worker.php +++ b/mod/worker.php @@ -5,14 +5,21 @@ */ use Friendica\Core\Config; +use Friendica\Core\Logger; use Friendica\Core\Worker; +use Friendica\Database\DBA; +use Friendica\Util\DateTimeFormat; -function worker_init(){ +function worker_init() +{ if (!Config::get("system", "frontend_worker")) { return; } + // Ensure that all "strtotime" operations do run timezone independent + date_default_timezone_set('UTC'); + // 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")) { @@ -30,17 +37,18 @@ function worker_init(){ Worker::startProcess(); - logger("Front end worker started: ".getmypid()); + Logger::log("Front end worker started: ".getmypid()); Worker::callWorker(); if ($r = Worker::workerProcess()) { - // 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])) { + $fields = ['executed' => DateTimeFormat::utcNow(), 'pid' => getmypid(), 'done' => false]; + $condition = ['id' => $r[0]["id"], 'pid' => 0]; + if (DBA::update('workerqueue', $fields, $condition)) { Worker::execute($r[0]); } } @@ -51,7 +59,7 @@ function worker_init(){ Worker::endProcess(); - logger("Front end worker ended: ".getmypid()); + Logger::log("Front end worker ended: ".getmypid()); - killme(); + exit(); }