Completed
Push — master ( 1d2662...30c418 )
by Tilita
19:22
created

AbstractMessageProcessor::getProcessedMessages()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 2
1
<?php
2
namespace NeedleProject\LaravelRabbitMq\Processor;
3
4
use PhpAmqpLib\Message\AMQPMessage;
5
use Psr\Log\LoggerAwareInterface;
6
use Psr\Log\LoggerAwareTrait;
7
8
/**
9
 * Class AbstractMessageProcessor
10
 *
11
 * @package NeedleProject\LaravelRabbitMq\Processor
12
 * @author  Adrian tilita <[email protected]>
13
 */
14
abstract class AbstractMessageProcessor implements MessageProcessorInterface, LoggerAwareInterface
15
{
16
    use LoggerAwareTrait;
17
18
    /**
19
     * @var int
20
     */
21
    private $messageCount = 0;
22
23
    /**
24
     * {@inheritdoc}
25
     * @param AMQPMessage $message
26
     */
27
    public function consume(AMQPMessage $message)
28
    {
29
        $this->messageCount++;
30
        try {
31
            $response = $this->processMessage($message);
32
            if ($response === true) {
33
                $this->logger->debug(sprintf("Processed with success message %s", $message->getBody()));
34
                $message->delivery_info['channel']->basic_ack($message->delivery_info['delivery_tag']);
35
            } else {
36
                $this->logger->debug(sprintf("Did not processed with success message %s", $message->getBody()));
37
                $message->delivery_info['channel']->basic_nack($message->delivery_info['delivery_tag'], false, true);
38
            }
39
        } catch (\Exception $e) {
40
            $this->logger->notice(
41
                sprintf(
42
                    "Could not process message, got %s from %s in %d for message: %s",
43
                    $e->getMessage(),
44
                    (string)$e->getFile(),
45
                    (int)$e->getLine(),
46
                    (string)$message->getBody()
47
                )
48
            );
49
            $message->delivery_info['channel']->basic_nack($message->delivery_info['delivery_tag'], false, true);
50
        }
51
    }
52
53
    /**
54
     * @return int
55
     */
56
    public function getProcessedMessages(): int
57
    {
58
        return $this->messageCount;
59
    }
60
61
    /**
62
     * @param AMQPMessage $message
63
     * @return bool
64
     */
65
    abstract public function processMessage(AMQPMessage $message): bool;
0 ignored issues
show
Coding Style introduced by
function processMessage() does not seem to conform to the naming convention (^(?:is|has|should|may|supports)).

This check examines a number of code elements and verifies that they conform to the given naming conventions.

You can set conventions for local variables, abstract classes, utility classes, constant, properties, methods, parameters, interfaces, classes, exceptions and special methods.

Loading history...
66
}
67