diff --git a/src/Symfony/Component/Scheduler/Messenger/ScheduledStamp.php b/src/Symfony/Component/Scheduler/Messenger/ScheduledStamp.php index 4b1b5cf1b577d..39ee3ab246c3f 100644 --- a/src/Symfony/Component/Scheduler/Messenger/ScheduledStamp.php +++ b/src/Symfony/Component/Scheduler/Messenger/ScheduledStamp.php @@ -18,4 +18,7 @@ */ final class ScheduledStamp implements NonSendableStampInterface { + public function __construct(public readonly string $scheduleName) + { + } } diff --git a/src/Symfony/Component/Scheduler/Messenger/SchedulerTransport.php b/src/Symfony/Component/Scheduler/Messenger/SchedulerTransport.php index af2a8f9adc1b2..ee9a34b63a292 100644 --- a/src/Symfony/Component/Scheduler/Messenger/SchedulerTransport.php +++ b/src/Symfony/Component/Scheduler/Messenger/SchedulerTransport.php @@ -23,13 +23,14 @@ class SchedulerTransport implements TransportInterface { public function __construct( private readonly MessageGeneratorInterface $messageGenerator, + private readonly string $name, ) { } public function get(): iterable { foreach ($this->messageGenerator->getMessages() as $message) { - yield Envelope::wrap($message, [new ScheduledStamp()]); + yield Envelope::wrap($message, [new ScheduledStamp($this->name)]); } } diff --git a/src/Symfony/Component/Scheduler/Messenger/SchedulerTransportFactory.php b/src/Symfony/Component/Scheduler/Messenger/SchedulerTransportFactory.php index 9fac1115ae596..a093e530372bf 100644 --- a/src/Symfony/Component/Scheduler/Messenger/SchedulerTransportFactory.php +++ b/src/Symfony/Component/Scheduler/Messenger/SchedulerTransportFactory.php @@ -48,7 +48,7 @@ public function createTransport(string $dsn, array $options, SerializerInterface $schedule = $this->scheduleProviders->get($scheduleName)->getSchedule(); $checkpoint = new Checkpoint('scheduler_checkpoint_'.$scheduleName, $schedule->getLock(), $schedule->getState()); - return new SchedulerTransport(new MessageGenerator($schedule, $checkpoint, $this->clock)); + return new SchedulerTransport(new MessageGenerator($schedule, $checkpoint, $this->clock), $scheduleName); } public function supports(string $dsn, array $options): bool diff --git a/src/Symfony/Component/Scheduler/Tests/Messenger/SchedulerTransportFactoryTest.php b/src/Symfony/Component/Scheduler/Tests/Messenger/SchedulerTransportFactoryTest.php index 55767d6b4740c..15000686cec34 100644 --- a/src/Symfony/Component/Scheduler/Tests/Messenger/SchedulerTransportFactoryTest.php +++ b/src/Symfony/Component/Scheduler/Tests/Messenger/SchedulerTransportFactoryTest.php @@ -36,8 +36,8 @@ public function testCreateTransport() $defaultRecurringMessage = RecurringMessage::trigger($trigger, (object) ['id' => 'default']); $customRecurringMessage = RecurringMessage::trigger($trigger, (object) ['id' => 'custom']); - $default = new SchedulerTransport(new MessageGenerator((new SomeScheduleProvider([$defaultRecurringMessage]))->getSchedule(), 'default', $clock)); - $custom = new SchedulerTransport(new MessageGenerator((new SomeScheduleProvider([$customRecurringMessage]))->getSchedule(), 'custom', $clock)); + $default = new SchedulerTransport(new MessageGenerator((new SomeScheduleProvider([$defaultRecurringMessage]))->getSchedule(), 'default', $clock), 'default'); + $custom = new SchedulerTransport(new MessageGenerator((new SomeScheduleProvider([$customRecurringMessage]))->getSchedule(), 'custom', $clock), 'custom'); $factory = new SchedulerTransportFactory( new Container([ diff --git a/src/Symfony/Component/Scheduler/Tests/Messenger/SchedulerTransportTest.php b/src/Symfony/Component/Scheduler/Tests/Messenger/SchedulerTransportTest.php index 2b31cb67062d1..3dddeac691b28 100644 --- a/src/Symfony/Component/Scheduler/Tests/Messenger/SchedulerTransportTest.php +++ b/src/Symfony/Component/Scheduler/Tests/Messenger/SchedulerTransportTest.php @@ -29,11 +29,11 @@ public function testGetFromIterator() $generator = $this->createConfiguredMock(MessageGeneratorInterface::class, [ 'getMessages' => $messages, ]); - $transport = new SchedulerTransport($generator); + $transport = new SchedulerTransport($generator, 'default'); foreach ($transport->get() as $envelope) { $this->assertInstanceOf(Envelope::class, $envelope); - $this->assertNotNull($envelope->last(ScheduledStamp::class)); + $this->assertSame('default', $envelope->last(ScheduledStamp::class)->scheduleName); $this->assertSame(array_shift($messages), $envelope->getMessage()); } @@ -42,7 +42,7 @@ public function testGetFromIterator() public function testAckIgnored() { - $transport = new SchedulerTransport($this->createMock(MessageGeneratorInterface::class)); + $transport = new SchedulerTransport($this->createMock(MessageGeneratorInterface::class), 'default'); $this->expectNotToPerformAssertions(); $transport->ack(new Envelope(new \stdClass())); @@ -50,7 +50,7 @@ public function testAckIgnored() public function testRejectException() { - $transport = new SchedulerTransport($this->createMock(MessageGeneratorInterface::class)); + $transport = new SchedulerTransport($this->createMock(MessageGeneratorInterface::class), 'default'); $this->expectException(LogicException::class); $transport->reject(new Envelope(new \stdClass())); @@ -58,7 +58,7 @@ public function testRejectException() public function testSendException() { - $transport = new SchedulerTransport($this->createMock(MessageGeneratorInterface::class)); + $transport = new SchedulerTransport($this->createMock(MessageGeneratorInterface::class), 'default'); $this->expectException(LogicException::class); $transport->send(new Envelope(new \stdClass()));