dbh / symfony-schedule-bundle
从 m-adamski/symfony-schedule-bundle 克隆
v2.2.0
2022-05-06 03:20 UTC
Requires
- php: ^7.2|^8.0
- dragonmantank/cron-expression: 3.1.*
- symfony/console: 5.4.*
- symfony/framework-bundle: 5.4.*
- symfony/lock: 5.4.*
README
Symfony 的调度 Bundle
用于简化 CRON 作业操作的 Bundle。
安装
此 Bundle 可以通过 Composer 安装。
$ composer require Dbh/symfony-schedule-bundle
如何使用它?
Bundle 提供从指定文件配置管理 CRON 作业的功能。我们需要创建一个实现 Dbh\Symfony\ScheduleBundle\Model\ManagerInterface
接口的类。
namespace App\Model;
use Dbh\Symfony\ScheduleBundle\Model\ManagerInterface;
use Dbh\Symfony\ScheduleBundle\Model\Schedule;
class ScheduleManager implements ManagerInterface {
public function schedule(Schedule $schedule) {
// TODO: ..
}
}
然后我们需要完成配置 - 创建文件 config/packages/schedule.yaml
并设置 ScheduleManager 的路径
schedule:
manager: App\Model\ScheduleManager
命令调度配置
在 schedule
函数中,我们可以使用所需的表达式配置 CRON 作业。例如,我们希望在每天 12:00 运行 app:test-command
。
public function schedule(Schedule $schedule) {
$schedule->command("app:test-command")->dailyAt("12:00");
}
调度类提供许多日期时间操作器。此功能受到 Laravel Tasks Scheduling 的启发。
调度频率选项
您可以为任务分配许多调度。
CRON
现在只需要在服务器上的 crontab 中插入一条条目即可。
* * * * * php /path-to-project/bin/console schedule:run >> schedule.log 2>&1
许可证
MIT