28 lines
791 B
PHP
28 lines
791 B
PHP
<?php
|
|
|
|
namespace App;
|
|
|
|
use App\Message\GenerateTasksMessage;
|
|
use Symfony\Component\Scheduler\Attribute\AsSchedule;
|
|
use Symfony\Component\Scheduler\RecurringMessage;
|
|
use Symfony\Component\Scheduler\Schedule as SymfonySchedule;
|
|
use Symfony\Component\Scheduler\ScheduleProviderInterface;
|
|
use Symfony\Contracts\Cache\CacheInterface;
|
|
|
|
#[AsSchedule]
|
|
class Schedule implements ScheduleProviderInterface
|
|
{
|
|
public function __construct(
|
|
private CacheInterface $cache,
|
|
) {
|
|
}
|
|
|
|
public function getSchedule(): SymfonySchedule
|
|
{
|
|
return (new SymfonySchedule())
|
|
->stateful($this->cache)
|
|
->processOnlyLastMissedRun(true)
|
|
->add(RecurringMessage::every('1 day', new GenerateTasksMessage(), from: new \DateTimeImmutable('03:00')));
|
|
}
|
|
}
|