continue example


abstract class AbstractDecoratedTrigger implements StatefulTriggerInterface
{
    public function __construct(private TriggerInterface $inner)
    {
    }

    public function continue(\DateTimeImmutable $startedAt): void
    {
        if ($this->inner instanceof StatefulTriggerInterface) {
            $this->inner->continue($startedAt);
        }
    }

    final public function inner(): TriggerInterface
    {
        $inner = $this->inner;

        while ($inner instanceof self) {
            $inner = $inner->inner;
        }

        

        if (isset($this->triggerHeap) && $this->triggerHeap->time <= $time) {
            return $this->triggerHeap;
        }

        $heap = new TriggerHeap($time);

        foreach ($this->schedule()->getRecurringMessages() as $index => $recurringMessage) {
            $trigger = $recurringMessage->getTrigger();

            if ($trigger instanceof StatefulTriggerInterface) {
                $trigger->continue($startTime);
            }

            if (!$nextTime = $trigger->getNextRunDate($time)) {
                continue;
            }

            $heap->insert([$nextTime$index$recurringMessage]);
        }

        return $this->triggerHeap = $heap;
    }

    
Home | Imprint | This part of the site doesn't use cookies.