]>
Commit | Line | Data |
---|---|---|
b3437d58 JB |
1 | <?php |
2 | ||
3 | namespace Wallabag\ImportBundle\Command; | |
4 | ||
5 | use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; | |
6 | use Symfony\Component\Config\Definition\Exception\Exception; | |
7 | use Symfony\Component\Console\Input\InputArgument; | |
015c7a83 | 8 | use Symfony\Component\Console\Input\InputOption; |
b3437d58 JB |
9 | use Symfony\Component\Console\Input\InputInterface; |
10 | use Symfony\Component\Console\Output\OutputInterface; | |
11 | use Simpleue\Worker\QueueWorker; | |
12 | ||
13 | class RedisWorkerCommand extends ContainerAwareCommand | |
14 | { | |
15 | protected function configure() | |
16 | { | |
17 | $this | |
18 | ->setName('wallabag:import:redis-worker') | |
19 | ->setDescription('Launch Redis worker') | |
ff1a5362 | 20 | ->addArgument('serviceName', InputArgument::REQUIRED, 'Service to use: wallabag_v1, wallabag_v2, pocket, readability, firefox, chrome or instapaper') |
015c7a83 | 21 | ->addOption('maxIterations', '', InputOption::VALUE_OPTIONAL, 'Number of iterations before stoping', false) |
b3437d58 JB |
22 | ; |
23 | } | |
24 | ||
25 | protected function execute(InputInterface $input, OutputInterface $output) | |
26 | { | |
27 | $output->writeln('Worker started at: '.(new \DateTime())->format('d-m-Y G:i:s')); | |
28 | $output->writeln('Waiting for message ...'); | |
29 | ||
30 | $serviceName = $input->getArgument('serviceName'); | |
31 | ||
32 | if (!$this->getContainer()->has('wallabag_import.queue.redis.'.$serviceName) || !$this->getContainer()->has('wallabag_import.consumer.redis.'.$serviceName)) { | |
33 | throw new Exception(sprintf('No queue or consumer found for service name: "%s"', $input->getArgument('serviceName'))); | |
34 | } | |
35 | ||
36 | $worker = new QueueWorker( | |
37 | $this->getContainer()->get('wallabag_import.queue.redis.'.$serviceName), | |
015c7a83 JB |
38 | $this->getContainer()->get('wallabag_import.consumer.redis.'.$serviceName), |
39 | $input->getOption('maxIterations') | |
b3437d58 JB |
40 | ); |
41 | ||
42 | $worker->start(); | |
43 | } | |
44 | } |