10000 minor #49716 [Scheduler] Fix some minor bugs (fabpot) · symfony/symfony@74878d8 · GitHub
[go: up one dir, main page]

Skip to content

Commit 74878d8

Browse files
minor #49716 [Scheduler] Fix some minor bugs (fabpot)
This PR was merged into the 6.3 branch. Discussion ---------- [Scheduler] Fix some minor bugs | Q | A | ------------- | --- | Branch? | 6.3 | Bug fix? | yes | New feature? | no <!-- please update src/**/CHANGELOG.md files --> | Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Tickets | n/a | License | MIT | Doc PR | n/a Commits ------- 9fc7cf5 [Scheduler] Fix some minor bugs
2 parents c77b407 + 9fc7cf5 commit 74878d8

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

src/Symfony/Component/Scheduler/Generator/MessageGenerator.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ public function getMessages(): \Generator
5252

5353
while (!$heap->isEmpty() && $heap->top()[0] <= $now) {
5454
/** @var TriggerInterface $trigger */
55+
/** @var int $index */
56+
/** @var \DateTimeImmutable $time */
57+
/** @var object $message */
5558
[$time, $index, $trigger, $message] = $heap->extract();
5659
$yield = true;
5760

src/Symfony/Component/Scheduler/Generator/MessageGeneratorInterface.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,8 @@
1616
*/
1717
interface MessageGeneratorInterface
1818
{
19+
/**
20+
* @return iterable<object>
21+
*/
1922
public function getMessages(): iterable;
2023
}

src/Symfony/Component/Scheduler/RecurringMessage.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Component\Scheduler;
1313

14+
use Symfony\Component\Scheduler\Exception\InvalidArgumentException;
1415
use Symfony\Component\Scheduler\Trigger\CronExpressionTrigger;
1516
use Symfony\Component\Scheduler\Trigger\PeriodicalTrigger;
1617
use Symfony\Component\Scheduler\Trigger\TriggerInterface;
@@ -31,9 +32,13 @@ private function __construct(
3132
*
3233
* @see https://php.net/datetime.formats.relative
3334
*/
34-
public static function every(string $frequency, object $message, \DateTimeImmutable $from = new \DateTimeImmutable(), ?\DateTimeImmutable $until = new \DateTimeImmutable('3000-01-01')): self
35+
public static function every(string $frequency, object $message, \DateTimeImmutable $from = new \DateTimeImmutable(), \DateTimeImmutable $until = new \DateTimeImmutable('3000-01-01')): self
3536
{
36-
return new self(PeriodicalTrigger::create(\DateInterval::createFromDateString($frequency), $from, $until), $message);
37+
if (false === $interval = \DateInterval::createFromDateString($frequency)) {
38+
throw new InvalidArgumentException(sprintf('Frequency "%s" cannot be parsed.', $frequency));
39+
}
40+
41+
return new self(PeriodicalTrigger::create($interval, $from, $until), $message);
3742
}
3843

3944
public static function cron(string $expression, object $message): self
< 31EA h2 class="sr-only">0 commit comments
Comments
 (0)
0