Skip to content

Instantly share code, notes, and snippets.

@mmouih
Last active January 22, 2024 00:58
Show Gist options
  • Save mmouih/34a5b5fe5d8c7908a86fb2d0cd3639ec to your computer and use it in GitHub Desktop.
Save mmouih/34a5b5fe5d8c7908a86fb2d0cd3639ec to your computer and use it in GitHub Desktop.
<?php
namespace App\Scheduler;
use App\Message\WatchDogMessage;
use Symfony\Component\Scheduler\Schedule;
use Symfony\Component\Scheduler\RecurringMessage;
use Symfony\Component\Scheduler\Attribute\AsSchedule;
use Symfony\Component\Scheduler\ScheduleProviderInterface;
use Symfony\Component\Scheduler\Trigger\ExcludeTimeTrigger;
use Symfony\Component\Scheduler\Trigger\PeriodicalTrigger;
#[AsSchedule('knights_watch')]
class KnightsWatchScheduleProvider implements ScheduleProviderInterface
{
public function getSchedule(): Schedule
{
// Watch only from 18h to 8am tomrrow
$trigger = new ExcludeTimeTrigger(
new PeriodicalTrigger('5 seconds'),
new \DateTimeImmutable(date('Y-m-d') . " " . '18:00:00'),
new \DateTimeImmutable((new \DateTimeImmutable('tomorrow'))->format('Y-m-d') . " " . '08:00:00')
);
return (new Schedule())->add(
RecurringMessage::trigger($trigger, new WatchDogMessage(['logger', 'imports', 'exports']))
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment