PluginProbe ʕ •ᴥ•ʔ
10Web Booster – Website speed optimization, Cache & Page Speed optimizer / trunk
10Web Booster – Website speed optimization, Cache & Page Speed optimizer vtrunk
2.33.0 2.30.5 2.30.7 2.30.9 2.31.10 2.31.8 2.32.11 2.32.21 2.32.3 2.32.4 2.32.7 2.6.31 2.6.40 2.6.42 2.6.7 2.7.37 2.7.44 2.7.47 2.8.18 2.8.19 2.8.32 2.8.34 2.8.35 2.9.23 2.9.24 2.9.25 2.9.27 v2.27.4 trunk 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.17 2.0.18 2.0.21 2.0.22 2.0.25 2.0.26 2.0.27 2.0.3 2.0.7 2.0.9 2.10.46 2.10.65 2.10.66 2.10.68 2.11.41 2.11.42 2.11.43 2.12.15 2.12.21 2.12.22 2.12.23 2.12.26 2.13.37 2.13.40 2.13.41 2.13.42 2.13.44 2.13.45 2.13.47 2.14.49 2.14.50 2.15.18 2.17.21 2.17.23 2.18.17 2.19.44 2.19.45 2.19.46 2.19.49 2.2.12 2.2.15 2.2.16 2.2.18 2.2.8 2.20.31 2.20.32 2.20.33 2.21.11 2.21.12 2.21.16 2.21.25 2.22.32 2.23.13 2.23.15 2.23.16 2.23.18 2.24.12 2.24.14 2.24.18 2.25.14 2.26.6 2.28.10 2.28.13 2.28.14 2.28.7 2.29.1 2.29.2 2.29.3 2.3.0 2.3.1 2.3.2 2.3.3 2.30.18
tenweb-speed-optimizer / vendor / 10web-utils / 10web-queue / src / TenWebQueue / Abstracts / QueueConsumerAbstract.php
tenweb-speed-optimizer / vendor / 10web-utils / 10web-queue / src / TenWebQueue / Abstracts Last commit date
QueueConsumerAbstract.php 4 years ago QueueProducerAbstract.php 4 years ago
QueueConsumerAbstract.php
72 lines
1 <?php
2 namespace TenWebQueue\Abstracts;
3
4 use Interop\Queue\Consumer;
5 use Interop\Queue\Message;
6 use TenWebQueue\Interfaces\QueueConsumerInterface;
7 use TenWebQueue\QueueContext;
8
9 abstract class QueueConsumerAbstract implements QueueConsumerInterface
10 {
11
12 /**
13 * @var QueueContext
14 */
15 private $queueContext;
16
17 /**
18 * @var Consumer
19 */
20 private $consumer;
21
22 /**
23 * @param QueueContext $context
24 */
25 public function __construct($context)
26 {
27 $this->queueContext = $context;
28 $this->consumer = $this->queueContext->getContext()->createConsumer($context->getQueue());
29 }
30
31 /**
32 * @param $requeue
33 *
34 * @return bool
35 */
36 public function run($requeue = false)
37 {
38 $message = $this->consumer->receive(1000);
39 if ($message) {
40 if ($this->process($message)) {
41 $this->consumer->acknowledge($message);
42 } else {
43 $this->consumer->reject($message, $requeue);
44 }
45
46 return true;
47 }
48
49 return false;
50 }
51
52 /**
53 * @return string
54 */
55 public function getQueueName()
56 {
57 return $this->queueContext->getQueue()->getQueueName();
58 }
59
60 /**
61 * @param Message $message
62 *
63 * @return boolean
64 */
65 abstract public function process($message);
66
67
68 /**
69 * @return bool
70 */
71 abstract public function finish();
72 }