From e01a3c98d6908e95121b5ade0161f40af1b05ca6 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Tue, 13 Sep 2016 20:31:32 +0200 Subject: Display how many messages are queue - update the docker-composer to add Redis - add migrations --- .../ImportBundle/Controller/ImportController.php | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'src/Wallabag/ImportBundle/Controller/ImportController.php') diff --git a/src/Wallabag/ImportBundle/Controller/ImportController.php b/src/Wallabag/ImportBundle/Controller/ImportController.php index c1486e38..d670746c 100644 --- a/src/Wallabag/ImportBundle/Controller/ImportController.php +++ b/src/Wallabag/ImportBundle/Controller/ImportController.php @@ -16,4 +16,58 @@ class ImportController extends Controller 'imports' => $this->get('wallabag_import.chain')->getAll(), ]); } + + /** + * Display how many messages are queue (both in Redis and RabbitMQ). + */ + public function checkQueueAction() + { + $nbRedisMessages = null; + $nbRabbitMessages = null; + + if ($this->get('craue_config')->get('import_with_rabbitmq')) { + $nbRabbitMessages = $this->getTotalMessageInRabbitQueue('pocket') + + $this->getTotalMessageInRabbitQueue('readability') + + $this->getTotalMessageInRabbitQueue('wallabag_v1') + + $this->getTotalMessageInRabbitQueue('wallabag_v2') + ; + } elseif ($this->get('craue_config')->get('import_with_redis')) { + $redis = $this->get('wallabag_core.redis.client'); + + $nbRedisMessages = $redis->llen('wallabag.import.pocket') + + $redis->llen('wallabag.import.readability') + + $redis->llen('wallabag.import.wallabag_v1') + + $redis->llen('wallabag.import.wallabag_v2') + ; + } + + return $this->render('WallabagImportBundle:Import:check_queue.html.twig', [ + 'nbRedisMessages' => $nbRedisMessages, + 'nbRabbitMessages' => $nbRabbitMessages, + ]); + } + + /** + * Count message in RabbitMQ queue. + * It get one message without acking it (so it'll stay in the queue) + * which will include the total of *other* messages in the queue. + * Adding one to that messages will result in the full total message. + * + * @param string $importService The import service related: pocket, readability, wallabag_v1 or wallabag_v2 + * + * @return int + */ + private function getTotalMessageInRabbitQueue($importService) + { + $message = $this + ->get('old_sound_rabbit_mq.import_'.$importService.'_consumer') + ->getChannel() + ->basic_get('wallabag.import.'.$importService); + + if (null === $message) { + return 0; + } + + return $message->delivery_info['message_count'] + 1; + } } -- cgit v1.2.3 From 4fc998245c56ad95c1e753ab52b0c702d4a8a59d Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Fri, 16 Sep 2016 20:08:07 +0200 Subject: Only display message in queue for admin Instead of for EVERYONE --- src/Wallabag/ImportBundle/Controller/ImportController.php | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/Wallabag/ImportBundle/Controller/ImportController.php') diff --git a/src/Wallabag/ImportBundle/Controller/ImportController.php b/src/Wallabag/ImportBundle/Controller/ImportController.php index d670746c..ea4f7d7b 100644 --- a/src/Wallabag/ImportBundle/Controller/ImportController.php +++ b/src/Wallabag/ImportBundle/Controller/ImportController.php @@ -19,12 +19,20 @@ class ImportController extends Controller /** * Display how many messages are queue (both in Redis and RabbitMQ). + * Only for admins. */ public function checkQueueAction() { $nbRedisMessages = null; $nbRabbitMessages = null; + if (!$this->get('security.authorization_checker')->isGranted('ROLE_SUPER_ADMIN')) { + return $this->render('WallabagImportBundle:Import:check_queue.html.twig', [ + 'nbRedisMessages' => $nbRedisMessages, + 'nbRabbitMessages' => $nbRabbitMessages, + ]); + } + if ($this->get('craue_config')->get('import_with_rabbitmq')) { $nbRabbitMessages = $this->getTotalMessageInRabbitQueue('pocket') + $this->getTotalMessageInRabbitQueue('readability') -- cgit v1.2.3 From 13a522dfbd64d1eb14b6e3715289753b0506ded0 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Sat, 24 Sep 2016 19:56:15 +0200 Subject: =?UTF-8?q?Display=20a=20message=20when=20async=20import=20won?= =?UTF-8?q?=E2=80=99t=20work?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mostly if Redis or RabbitMQ isn’t installed / launched. I guess it’ll avoid some issues. --- .../ImportBundle/Controller/ImportController.php | 36 +++++++++++++--------- 1 file changed, 22 insertions(+), 14 deletions(-) (limited to 'src/Wallabag/ImportBundle/Controller/ImportController.php') diff --git a/src/Wallabag/ImportBundle/Controller/ImportController.php b/src/Wallabag/ImportBundle/Controller/ImportController.php index ea4f7d7b..36a2a399 100644 --- a/src/Wallabag/ImportBundle/Controller/ImportController.php +++ b/src/Wallabag/ImportBundle/Controller/ImportController.php @@ -25,33 +25,41 @@ class ImportController extends Controller { $nbRedisMessages = null; $nbRabbitMessages = null; + $redisNotInstalled = false; + $rabbitNotInstalled = false; if (!$this->get('security.authorization_checker')->isGranted('ROLE_SUPER_ADMIN')) { - return $this->render('WallabagImportBundle:Import:check_queue.html.twig', [ - 'nbRedisMessages' => $nbRedisMessages, - 'nbRabbitMessages' => $nbRabbitMessages, - ]); + return $this->render('WallabagImportBundle:Import:check_queue.html.twig'); } if ($this->get('craue_config')->get('import_with_rabbitmq')) { - $nbRabbitMessages = $this->getTotalMessageInRabbitQueue('pocket') - + $this->getTotalMessageInRabbitQueue('readability') - + $this->getTotalMessageInRabbitQueue('wallabag_v1') - + $this->getTotalMessageInRabbitQueue('wallabag_v2') - ; + // in case rabbit is activated but not installed + try { + $nbRabbitMessages = $this->getTotalMessageInRabbitQueue('pocket') + + $this->getTotalMessageInRabbitQueue('readability') + + $this->getTotalMessageInRabbitQueue('wallabag_v1') + + $this->getTotalMessageInRabbitQueue('wallabag_v2'); + } catch (\Exception $e) { + $rabbitNotInstalled = true; + } } elseif ($this->get('craue_config')->get('import_with_redis')) { $redis = $this->get('wallabag_core.redis.client'); - $nbRedisMessages = $redis->llen('wallabag.import.pocket') - + $redis->llen('wallabag.import.readability') - + $redis->llen('wallabag.import.wallabag_v1') - + $redis->llen('wallabag.import.wallabag_v2') - ; + try { + $nbRedisMessages = $redis->llen('wallabag.import.pocket') + + $redis->llen('wallabag.import.readability') + + $redis->llen('wallabag.import.wallabag_v1') + + $redis->llen('wallabag.import.wallabag_v2'); + } catch (\Exception $e) { + $redisNotInstalled = true; + } } return $this->render('WallabagImportBundle:Import:check_queue.html.twig', [ 'nbRedisMessages' => $nbRedisMessages, 'nbRabbitMessages' => $nbRabbitMessages, + 'redisNotInstalled' => $redisNotInstalled, + 'rabbitNotInstalled' => $rabbitNotInstalled, ]); } -- cgit v1.2.3 From ff1a5362f7254d686864ea53994da6c517b3d3e8 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Tue, 27 Sep 2016 07:57:53 +0200 Subject: Add Instapaper import Also update ImportController with latest import (chrome, firefox & instapaper). --- src/Wallabag/ImportBundle/Controller/ImportController.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/Wallabag/ImportBundle/Controller/ImportController.php') diff --git a/src/Wallabag/ImportBundle/Controller/ImportController.php b/src/Wallabag/ImportBundle/Controller/ImportController.php index 36a2a399..15de75ff 100644 --- a/src/Wallabag/ImportBundle/Controller/ImportController.php +++ b/src/Wallabag/ImportBundle/Controller/ImportController.php @@ -38,7 +38,11 @@ class ImportController extends Controller $nbRabbitMessages = $this->getTotalMessageInRabbitQueue('pocket') + $this->getTotalMessageInRabbitQueue('readability') + $this->getTotalMessageInRabbitQueue('wallabag_v1') - + $this->getTotalMessageInRabbitQueue('wallabag_v2'); + + $this->getTotalMessageInRabbitQueue('wallabag_v2') + + $this->getTotalMessageInRabbitQueue('firefox') + + $this->getTotalMessageInRabbitQueue('chrome') + + $this->getTotalMessageInRabbitQueue('instapaper') + ; } catch (\Exception $e) { $rabbitNotInstalled = true; } @@ -49,7 +53,11 @@ class ImportController extends Controller $nbRedisMessages = $redis->llen('wallabag.import.pocket') + $redis->llen('wallabag.import.readability') + $redis->llen('wallabag.import.wallabag_v1') - + $redis->llen('wallabag.import.wallabag_v2'); + + $redis->llen('wallabag.import.wallabag_v2') + + $redis->llen('wallabag.import.firefox') + + $redis->llen('wallabag.import.chrome') + + $redis->llen('wallabag.import.instapaper') + ; } catch (\Exception $e) { $redisNotInstalled = true; } -- cgit v1.2.3