natepage / schedule-bundle
Provides the Command Scheduling logic of Laravel in a Symfony application
Installs: 34
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: ^7.1
- dragonmantank/cron-expression: ^2.3
- nesbot/carbon: ^2.22
Requires (Dev)
- symfony/symfony: ^4.3
This package is auto-updated.
Last update: 2024-11-16 02:36:54 UTC
README
Provides the Command Scheduling logic of Laravel in a Symfony application
Installation
$ composer require loyaltycorp/schedule-bundle
Until a recipe is created for this bundle you will need to register it manually:
// config/bundles.php return [ // Other bundles... LoyaltyCorp\Schedule\ScheduleBundle\ScheduleBundle::class => ['all' => true], ];
Usage
Register Your Scheduled Commands
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 LoyaltyCorp\Schedule\ScheduleBundle\Interfaces\ScheduleProviderInterface
.
The ScheduleInterface
passed to the schedule
method offers all the features of the Laravel Console Scheduling.
// src/Schedule/MyScheduleProvider.php use LoyaltyCorp\Schedule\ScheduleBundle\Interfaces\ScheduleProviderInterface; final class MyScheduleProvider implements ScheduleProviderInterface { /** * Schedule command on given schedule. * * @param \Loyaltycorp\Schedule\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(); } }
Run The Schedule
This bundle providers a console command to run the schedule:
$ php bin/console schedule:run