natepage/schedule-bundle

为 Symfony 应用提供 Laravel 命令调度逻辑

安装: 34

依赖: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

dev-master 2019-08-15 14:59 UTC

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