natepage / schedule-bundle
为 Symfony 应用提供 Laravel 命令调度逻辑
dev-master
2019-08-15 14:59 UTC
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-09-16 02:18:17 UTC
README
为 Symfony 应用提供 Laravel 命令调度逻辑
安装
$ composer require loyaltycorp/schedule-bundle
在为该包创建配方之前,您需要手动注册它
// config/bundles.php return [ // Other bundles... LoyaltyCorp\Schedule\ScheduleBundle\ScheduleBundle::class => ['all' => true], ];
用法
注册您的计划命令
为了注册计划命令,此包实现了一个名为 "schedule providers" 的概念,多亏了 Symfony 的自动配置功能,唯一需要做的是创建实现 LoyaltyCorp\Schedule\ScheduleBundle\Interfaces\ScheduleProviderInterface
接口的服务。传递给 schedule
方法的 ScheduleInterface
提供了所有 Laravel 控制台调度 的功能。
// 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(); } }
运行调度
此包提供了一个用于运行调度的控制台命令
$ php bin/console schedule:run