X-Git-Url: https://git.cweiske.de/phinde.git/blobdiff_plain/696fcd7ce4d495e356667019493bf312e2a6e47b..HEAD:/src/phinde/Queue.php diff --git a/src/phinde/Queue.php b/src/phinde/Queue.php index a58a257..a8ead3d 100644 --- a/src/phinde/Queue.php +++ b/src/phinde/Queue.php @@ -9,6 +9,7 @@ class Queue { $this->gmclient = new \GearmanClient(); $this->gmclient->addServer('127.0.0.1'); + $this->queueName = $GLOBALS['phinde']['queuePrefix'] . 'phinde_process'; } public function addToProcessList($linkUrl, $actions) @@ -19,7 +20,7 @@ class Queue ); $this->gmclient->doBackground( - $GLOBALS['phinde']['queuePrefix'] . 'phinde_process', + $this->queueName, serialize( array( 'url' => $linkUrl, @@ -36,5 +37,27 @@ class Queue exit(2); } } + + public function getServerStatus() + { + $cmd = 'gearadmin --status' + . '| grep ' . escapeshellarg($this->queueName); + $line = exec($cmd); + if ($line === '') { + //job not registered + $parts = [0, -1, -1, -1]; + } else { + $parts = preg_split('#\s+#', $line); + if (count($parts) !== 4) { + throw new \Exception('gearadmin status line does not have 4 parts'); + } + } + + return array( + 'tasks' => $parts[1], + 'processing' => $parts[2], + 'workers' => $parts[3], + ); + } } ?>