Private
Public Access
36 lines
1.0 KiB
PHP
36 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App;
|
|
|
|
use Symfony\Component\Scheduler\Attribute\AsSchedule;
|
|
use Symfony\Component\Scheduler\Schedule as SymfonySchedule;
|
|
use Symfony\Component\Scheduler\ScheduleProviderInterface;
|
|
use Symfony\Contracts\Cache\CacheInterface;
|
|
|
|
/**
|
|
* Class Schedule
|
|
*
|
|
* @package App
|
|
* @author Lang <https://www.splendidbear.org>
|
|
* @category Class
|
|
* @license https://www.gnu.org/licenses/lgpl-3.0.en.html GNU Lesser General Public License
|
|
* @link www.splendidbear.org
|
|
* @since 2026. 07. 27.
|
|
*/
|
|
#[AsSchedule]
|
|
class Schedule implements ScheduleProviderInterface
|
|
{
|
|
public function __construct(private CacheInterface $cache) { }
|
|
|
|
public function getSchedule(): SymfonySchedule
|
|
{
|
|
return (new SymfonySchedule())
|
|
->stateful($this->cache) // ensure missed tasks are executed
|
|
->processOnlyLastMissedRun(true) // ensure only last missed task is run
|
|
|
|
// add your own tasks here
|
|
// see https://symfony.com/doc/current/scheduler.html#attaching-recurring-messages-to-a-schedule
|
|
;
|
|
}
|
|
}
|