abc / scheduler
用于管理任务重复执行的调度库
0.2.2
2020-12-01 18:42 UTC
Requires
- php: ^7.2
- dragonmantank/cron-expression: ^2.3
- myclabs/php-enum: ^1.7
- psr/log: ^1.1
Requires (Dev)
- phpunit/phpunit: ^8.0|^9.0
- symfony/console: ^4.3|^5.1
This package is not auto-updated.
Last update: 2024-09-18 13:55:24 UTC
README
基于CRON表达式的PHP库,用于处理调度。
功能
- 基于CRON表达式定义调度
- 使用Symfony控制台命令运行调度器
- 通过实现两个接口实现简单集成
注意:此项目仍处于实验阶段!
安装
composer require abc/scheduler
入门
-
通过实现
ProviderInterface
定义调度提供者。namespace Abc\Scheduler; interface ProviderInterface { /** * @return string The provider's name, used to bind a provider to processors */ public function getName(): string; /** * @param int|null $limit * @param int|null $offset * @return ScheduleInterface[] */ public function provideSchedules(int $limit = null, int $offset = null): array; public function save(ScheduleInterface $schedule): void; }
-
通过实现
ProcessorInterface
定义调度处理器。namespace Abc\Scheduler; /** * Process a schedule that is due. */ interface ProcessorInterface { public function process(ScheduleInterface $schedule); }
-
将处理器绑定到提供者并初始化ScheduleCommand
use Abc\Scheduler\Scheduler; use Abc\Scheduler\Symfony\ScheduleCommand; $myProvider = new MyProvider(); $myProcessor = new MyProcessor(); $scheduler = new Scheduler(); $scheduler->bind($myProvider, $myProcessor); $command = new ScheduleCommand($scheduler);
-
运行命令
bin/console abc:schedule
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。