Passed
Push — master ( 29f4c1...b8c44c )
by Mike
03:51
created

Worker::runWorker()   A

Complexity

Conditions 4
Paths 3

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 4.128

Importance

Changes 0
Metric Value
cc 4
eloc 4
nc 3
nop 1
dl 0
loc 7
ccs 4
cts 5
cp 0.8
crap 4.128
rs 10
c 0
b 0
f 0
1
<?php
2
3
4
namespace Xervice\RabbitMQ\Business\Model\Worker;
5
6
7
use Symfony\Component\Console\Output\OutputInterface;
8
use Xervice\RabbitMQ\Business\Model\Worker\Consumer\ConsumerInterface;
9
use Xervice\RabbitMQ\Business\Model\Worker\Listener\ListenerCollection;
10
11
class Worker implements WorkerInterface
12
{
13
    /**
14
     * @var \Xervice\RabbitMQ\Business\Model\Worker\Listener\ListenerCollection
15
     */
16
    private $listenerCollection;
17
18
    /**
19
     * @var \Xervice\RabbitMQ\Business\Model\Worker\Consumer\ConsumerInterface
20
     */
21
    private $consumer;
22
23
    /**
24
     * Worker constructor.
25
     *
26
     * @param \Xervice\RabbitMQ\Business\Model\Worker\Listener\ListenerCollection $listenerCollection
27
     * @param \Xervice\RabbitMQ\Business\Model\Worker\Consumer\ConsumerInterface $consumer
28
     */
29 2
    public function __construct(
30
        ListenerCollection $listenerCollection,
31
        ConsumerInterface $consumer
32
    ) {
33 2
        $this->listenerCollection = $listenerCollection;
34 2
        $this->consumer = $consumer;
35 2
    }
36
37
    /**
38
     * @param \Symfony\Component\Console\Output\OutputInterface $output
39
     */
40 2
    public function runWorker(OutputInterface $output = null): void
41
    {
42 2
        foreach ($this->listenerCollection as $listener) {
43 2
            if ($output !== null && $output->isDebug()) {
44
                $output->writeln('Run listener for queue <info>' . $listener->getQueueName() . '</info>');
45
            }
46 2
            $this->consumer->consumeQueries($listener);
47
        }
48
    }
49
}