Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f7f4811

Browse files
committed
Adding receiverName to queued message events
1 parent 5d9860f commit f7f4811

6 files changed

+56
-50
lines changed

src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ protected function execute(InputInterface $input, OutputInterface $output): void
177177
$io->comment('Re-run the command with a -vv option to see logs about consumed messages.');
178178
}
179179

180-
$worker = new Worker($receiver, $bus, $this->eventDispatcher);
180+
$worker = new Worker($receiver, $bus, $receiverName, $this->eventDispatcher);
181181
$worker->run();
182182
}
183183

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
namespace Symfony\Component\Messenger\Event;
4+
5+
use Symfony\Component\EventDispatcher\Event;
6+
use Symfony\Component\Messenger\Envelope;
7+
8+
abstract class AbstractWorkerMessageEvent extends Event
9+
{
10+
private $envelope;
11+
private $receiverName;
12+
13+
public function __construct(Envelope $envelope, string $receiverName)
14+
{
15+
$this->envelope = $envelope;
16+
$this->receiverName = $receiverName;
17+
}
18+
19+
public function getEnvelope(): Envelope
20+
{
21+
return $this->envelope;
22+
}
23+
24+
/**
25+
* Returns a unique identifier for transport receiver this message was received from.
26+
*
27+
* @return string
28+
*/
29+
public function getReceiverName(): string
30+
{
31+
return $this->receiverName;
32+
}
33+
}

src/Symfony/Component/Messenger/Event/WorkerMessageFailedEvent.php

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,18 @@
1414
use Symfony\Component\EventDispatcher\Event;
1515
use Symfony\Component\Messenger\Envelope;
1616

17-
class WorkerMessageFailedEvent extends Event
17+
class WorkerMessageFailedEvent extends AbstractWorkerMessageEvent
1818
{
19-
private $envelope;
20-
2119
private $throwable;
2220

2321
private $wasRequeued;
2422

25-
public function __construct(Envelope $envelope, \Throwable $error, bool $wasRequeued)
23+
public function __construct(Envelope $envelope, string $receiverName, \Throwable $error, bool $wasRequeued)
2624
{
27-
$this->envelope = $envelope;
2825
$this->throwable = $error;
2926
$this->wasRequeued = $wasRequeued;
30-
}
3127

32-
public function getEnvelope(): Envelope
33-
{
34-
return $this->envelope;
28+
parent::__construct($envelope, $receiverName);
3529
}
3630

3731
public function getThrowable(): \Throwable

src/Symfony/Component/Messenger/Event/WorkerMessageHandledEvent.php

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,6 @@
1414
use Symfony\Component\EventDispatcher\Event;
1515
use Symfony\Component\Messenger\Envelope;
1616

17-
class WorkerMessageHandledEvent extends Event
17+
class WorkerMessageHandledEvent extends AbstractWorkerMessageEvent
1818
{
19-
private $envelope;
20-
21-
public function __construct(Envelope $envelope)
22-
{
23-
$this->envelope = $envelope;
24-
}
25-
26-
public function getEnvelope(): Envelope
27-
{
28-
return $this->envelope;
29-
}
3019
}

src/Symfony/Component/Messenger/Event/WorkerMessageHandlingEvent.php

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,6 @@
1414
use Symfony\Component\EventDispatcher\Event;
1515
use Symfony\Component\Messenger\Envelope;
1616

17-
class WorkerMessageHandlingEvent extends Event
17+
class WorkerMessageHandlingEvent extends AbstractWorkerMessageEvent
1818
{
19-
private $envelope;
20-
21-
public function __construct(Envelope $envelope)
22-
{
23-
$this->envelope = $envelope;
24-
}
25-
26-
public function getEnvelope(): Envelope
27-
{
28-
return $this->envelope;
29-
}
3019
}

src/Symfony/Component/Messenger/Worker.php

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,16 @@ class Worker
3232
{
3333
private $receiver;
3434
private $bus;
35-
35+
private $receiverName;
3636
private $eventDispatcher;
3737

3838
private const DEFAULT_MAX_RETRY_ATTEMPTS = 3;
3939

40-
public function __construct(ReceiverInterface $receiver, MessageBusInterface $bus, EventDispatcherInterface $eventDispatcher = null)
40+
public function __construct(ReceiverInterface $receiver, MessageBusInterface $bus, string $receiverName, EventDispatcherInterface $eventDispatcher = null)
4141
{
4242
$this->receiver = $receiver;
4343
$this->bus = $bus;
44+
$this->receiverName = $receiverName;
4445
$this->eventDispatcher = $eventDispatcher;
4546
}
4647

@@ -60,25 +61,34 @@ public function run()
6061
return;
6162
}
6263

63-
$this->dispatchEvent(WorkerMessageHandlingEvent::class, new WorkerMessageHandlingEvent($envelope));
64+
$this->dispatchEvent(
65+
WorkerMessageHandlingEvent::class,
66+
new WorkerMessageHandlingEvent($envelope, $this->receiverName)
67+
);
6468

6569
try {
6670
$this->bus->dispatch($envelope->with(new ReceivedStamp()));
67-
} catch (\Throwable $e) {
68-
$shouldRequeue = $this->shouldRequeue($e, $messageMetadata);
71+
} catch (\Throwable $throwable) {
72+
$shouldRequeue = $this->shouldRequeue($throwable, $messageMetadata);
6973
if ($shouldRequeue) {
7074
$this->receiver->retry($messageMetadata->getMessage());
7175
} else {
7276
$this->receiver->reject($messageMetadata->getMessage());
7377
}
7478

75-
$this->dispatchFailedEvent($envelope, $e, $shouldRequeue);
79+
$this->dispatchEvent(
80+
WorkerMessageFailedEvent::class,
81+
new WorkerMessageFailedEvent($envelope, $this->receiverName, $throwable, $shouldRequeue)
82+
);
7683

7784
return;
7885
}
7986

8087
$this->receiver->acknowledge($messageMetadata->getMessage());
81-
$this->dispatchEvent(WorkerMessageHandledEvent::class, new WorkerMessageHandledEvent($envelope));
88+
$this->dispatchEvent(
89+
WorkerMessageHandledEvent::class,
90+
new WorkerMessageHandledEvent($envelope, $this->receiverName)
91+
);
8292
});
8393
}
8494

@@ -91,15 +101,6 @@ private function dispatchEvent(string $eventName, Event $event)
91101
$this->eventDispatcher->dispatch($eventName, $event);
92102
}
93103

94-
private function dispatchFailedEvent(Envelope $envelope, \Throwable $throwable, bool $wasRequeued)
95-
{
96-
$event = new WorkerMessageFailedEvent($envelope, $throwable, $wasRequeued);
97-
98-
$this->dispatchEvent(WorkerMessageFailedEvent::class, $event);
99-
100-
return $event->wasRequeued();
101-
}
102-
103104
private function shouldRequeue(\Throwable $e, QueuedMessageMetadata $messageMetadata): bool
104105
{
105106
if ($e instanceof UnrecoverableMessageHandlingException) {

0 commit comments

Comments
 (0)