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()));
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: