m-adamski/symfony-schedule-bundle

Symfony 的调度工具包

安装次数: 30,185

依赖项: 0

建议者: 0

安全: 0

星标: 14

关注者: 2

分支: 2

开放问题: 0

类型:symfony-bundle

4.0.0 2024-02-02 10:04 UTC

This package is auto-updated.

Last update: 2024-08-31 00:26:30 UTC


README

用于简化操作 CRON 任务的工具包。

2.x 版本不再与 Symfony 4.x 兼容。在这种情况下,请使用 1.x 版本。

安装

该工具包可以通过 Composer 安装。

$ composer require m-adamski/symfony-schedule-bundle

如何使用?

该工具包提供了通过配置文件管理 CRON 作业的功能。我们需要创建一个实现 Adamski\Symfony\ScheduleBundle\Model\ManagerInterface 接口的自定义类。

namespace App\Model;

use Adamski\Symfony\ScheduleBundle\Model\ManagerInterface;
use Adamski\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");
}

Schedule 类提供了许多日期时间操作器。此功能灵感来自 Laravel 任务调度。

调度频率选项

您可以为任务分配许多调度。

CRON

现在只需在服务器 crontab 中插入一条条目即可。

* * * * * php /path-to-project/bin/console schedule:run >> schedule.log 2>&1

许可

MIT