eonx-com/schedule-bundle
Brings Laravel's command scheduling to Symfony: register scheduled commands via autoconfigured schedule providers with the full Laravel scheduling API, then run them with the schedule:run console command.
$ composer require eonx-com/schedule-bundle
Until a recipe is created for this bundle you will need to register it manually:
// config/bundles.php
return [
// Other bundles...
EonX\ScheduleBundle\ScheduleBundle::class => ['all' => true],
];
To register the scheduled commands this bundle implements a concept of "schedule providers", thanks to Symfony's
autoconfigure feature, the only thing required is to create services that implement EonX\ScheduleBundle\Interfaces\ScheduleProviderInterface.
The ScheduleInterface passed to the schedule method offers all the features of the Laravel Console Scheduling.
// src/Schedule/MyScheduleProvider.php
use EonX\ScheduleBundle\Interfaces\ScheduleProviderInterface;
final class MyScheduleProvider implements ScheduleProviderInterface
{
/**
* Schedule command on given schedule.
*
* @param \EonX\ScheduleBundle\Interfaces\ScheduleInterface $schedule
*
* @return void
*/
public function schedule(ScheduleInterface $schedule): void
{
$schedule
->command('poc:hello-world', ['-v'])
->everyMinute()
->setMaxLockTime(120);
$schedule
->command('poc:hello-world-2')
->everyFiveMinutes();
}
}
}
This bundle providers a console command to run the schedule:
$ php bin/console schedule:run
How can I help you explore Laravel packages today?