diff options
| author | Christian Weiske <cweiske@cweiske.de> | 2016-11-11 20:54:12 +0100 |
|---|---|---|
| committer | Christian Weiske <cweiske@cweiske.de> | 2016-11-11 20:54:12 +0100 |
| commit | 08fc60226f224de87d665aa7c55b6eaa9f66d768 (patch) | |
| tree | 2dee8eb122a167a84e9fcb1840cdc88eb012497c /src/phinde/Queue.php | |
| parent | 696fcd7ce4d495e356667019493bf312e2a6e47b (diff) | |
| download | phinde-08fc60226f224de87d665aa7c55b6eaa9f66d768.tar.gz phinde-08fc60226f224de87d665aa7c55b6eaa9f66d768.zip | |
status page
Diffstat (limited to 'src/phinde/Queue.php')
| -rw-r--r-- | src/phinde/Queue.php | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/phinde/Queue.php b/src/phinde/Queue.php index a58a257..1033d7a 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,23 @@ class Queue exit(2); } } + + public function getServerStatus() + { + $cmd = 'gearadmin --status' + . '| grep ' . escapeshellarg($this->queueName); + $line = exec($cmd); + + $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], + ); + } } ?> |
