3 namespace Wallabag\ImportBundle\Command
;
5 use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand
;
6 use Symfony\Component\Config\Definition\Exception\Exception
;
7 use Symfony\Component\Console\Input\InputArgument
;
8 use Symfony\Component\Console\Input\InputInterface
;
9 use Symfony\Component\Console\Output\OutputInterface
;
10 use Simpleue\Worker\QueueWorker
;
12 class RedisWorkerCommand
extends ContainerAwareCommand
14 protected function configure()
17 ->setName('wallabag:import:redis-worker')
18 ->setDescription('Launch Redis worker')
19 ->addArgument('serviceName', InputArgument
::REQUIRED
, 'Service to use: wallabag_v1, wallabag_v2, pocket or readability')
23 protected function execute(InputInterface
$input, OutputInterface
$output)
25 $output->writeln('Worker started at: '.(new \
DateTime())->format('d-m-Y G:i:s'));
26 $output->writeln('Waiting for message ...');
28 $serviceName = $input->getArgument('serviceName');
30 if (!$this->getContainer()->has('wallabag_import.queue.redis.'.$serviceName) || !$this->getContainer()->has('wallabag_import.consumer.redis.'.$serviceName)) {
31 throw new Exception(sprintf('No queue or consumer found for service name: "%s"', $input->getArgument('serviceName')));
34 $worker = new QueueWorker(
35 $this->getContainer()->get('wallabag_import.queue.redis.'.$serviceName),
36 $this->getContainer()->get('wallabag_import.consumer.redis.'.$serviceName)