loyaltycorp / schedule-bundle
在Symfony应用程序中提供Laravel的命令调度逻辑
这个包的官方仓库似乎已消失,因此该包已被冻结。
v1.0.0
2019-08-17 13:50 UTC
Requires
- php: ^7.1
- dragonmantank/cron-expression: ^2.3
- nesbot/carbon: ^2.22
Requires (Dev)
- symfony/symfony: ^4.3
README
在Symfony应用程序中提供Laravel的命令调度逻辑。
安装
$ composer require loyaltycorp/schedule-bundle
在此捆绑包创建配方之前,您需要手动注册它
// config/bundles.php return [ // Other bundles... LoyaltyCorp\ScheduleBundle\ScheduleBundle::class => ['all' => true], ];
使用
注册您的计划命令
为了注册此捆绑包实现的计划命令,它通过Symfony的自动配置功能,实现了一个“计划提供者”的概念,您只需要创建实现LoyaltyCorp\ScheduleBundle\Interfaces\ScheduleProviderInterface的服务。传递给schedule方法的ScheduleInterface提供了Laravel控制台计划的所有功能。
// src/Schedule/MyScheduleProvider.php use LoyaltyCorp\ScheduleBundle\Interfaces\ScheduleProviderInterface; final class MyScheduleProvider implements ScheduleProviderInterface { /** * Schedule command on given schedule. * * @param \Loyaltycorp\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(); } } }
运行计划
此捆绑包提供了一个控制台命令来运行计划
$ php bin/console schedule:run