13
13
14
14
use Psr \Clock \ClockInterface ;
15
15
use Symfony \Component \Clock \Clock ;
16
+ use Symfony \Component \Scheduler \RecurringMessage ;
16
17
use Symfony \Component \Scheduler \Schedule ;
17
- use Symfony \Component \Scheduler \Trigger \TriggerInterface ;
18
18
19
19
/**
20
20
* @experimental
@@ -49,11 +49,13 @@ public function getMessages(): \Generator
49
49
$ heap = $ this ->heap ($ lastTime );
50
50
51
51
while (!$ heap ->isEmpty () && $ heap ->top ()[0 ] <= $ now ) {
52
- /** @var TriggerInterface $trigger */
53
- /** @var int $index */
54
52
/** @var \DateTimeImmutable $time */
55
- /** @var object $message */
56
- [$ time , $ index , $ trigger , $ message ] = $ heap ->extract ();
53
+ /** @var int $index */
54
+ /** @var RecurringMessage $recurringMessage */
55
+ [$ time , $ index , $ recurringMessage ] = $ heap ->extract ();
56
+ $ id = $ recurringMessage ->getId ();
57
+ $ message = $ recurringMessage ->getMessage ();
58
+ $ trigger = $ recurringMessage ->getTrigger ();
57
59
$ yield = true ;
58
60
59
61
if ($ time < $ lastTime ) {
@@ -64,11 +66,11 @@ public function getMessages(): \Generator
64
66
}
65
67
66
68
if ($ nextTime = $ trigger ->getNextRunDate ($ time )) {
67
- $ heap ->insert ([$ nextTime , $ index , $ trigger , $ message ]);
69
+ $ heap ->insert ([$ nextTime , $ index , $ recurringMessage ]);
68
70
}
69
71
70
72
if ($ yield ) {
71
- yield (new MessageContext ($ this ->name , $ trigger , $ time , $ nextTime )) => $ message ;
73
+ yield (new MessageContext ($ this ->name , $ id , $ trigger , $ time , $ nextTime )) => $ message ;
72
74
$ this ->checkpoint ->save ($ time , $ index );
73
75
}
74
76
}
@@ -91,7 +93,7 @@ private function heap(\DateTimeImmutable $time): TriggerHeap
91
93
continue ;
92
94
}
93
95
94
- $ heap ->insert ([$ nextTime , $ index , $ recurringMessage-> getTrigger (), $ recurringMessage -> getMessage () ]);
96
+ $ heap ->insert ([$ nextTime , $ index , $ recurringMessage ]);
95
97
}
96
98
97
99
return $ this ->triggerHeap = $ heap ;
0 commit comments