1 | <?php |
||
15 | class Publisher |
||
16 | { |
||
17 | /** @var Producer */ |
||
18 | protected $producer; |
||
19 | |||
20 | /** @var QueueService */ |
||
21 | protected $queueService; |
||
22 | |||
23 | /** @var LoggerInterface */ |
||
24 | protected $logger; |
||
25 | |||
26 | /** @var DelayService */ |
||
27 | protected $delayService; |
||
28 | |||
29 | /** @var QueueEntityInterface[] */ |
||
30 | protected $publishQueues = []; |
||
31 | |||
32 | 1 | public function __construct( |
|
33 | Producer $producer, |
||
34 | QueueService $queueService, |
||
35 | LoggerInterface $logger, |
||
36 | DelayService $delayService |
||
37 | ) { |
||
38 | 1 | $this->producer = $producer; |
|
39 | 1 | $this->queueService = $queueService; |
|
40 | 1 | $this->logger = $logger; |
|
41 | 1 | $this->delayService = $delayService; |
|
42 | 1 | } |
|
43 | |||
44 | /** |
||
45 | * @param QueueInterface $queueable |
||
46 | * |
||
47 | * @throws UnexpectedValueException |
||
48 | * |
||
49 | * @return Publisher |
||
50 | */ |
||
51 | public function prepareJobForPublish(QueueInterface $queueable): self |
||
59 | |||
60 | 5 | public function prepareQueueForPublish(QueueEntityInterface $queue): self |
|
66 | |||
67 | 1 | protected function publishQueue(QueueEntityInterface $queueEntity, int $deliveryMode = 2): void |
|
75 | |||
76 | 4 | public function release(): void |
|
88 | |||
89 | 4 | private function clearStorage(): void |
|
93 | |||
94 | /** |
||
95 | * @param QueueEntityInterface[] $queues |
||
96 | */ |
||
97 | 4 | private function releaseQueues(array $queues): void |
|
123 | } |
||
124 |