loyaltycorp/schedule-bundle

在Symfony应用程序中提供Laravel的命令调度逻辑

这个包的官方仓库似乎已消失,因此该包已被冻结。

安装: 178

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 5

分支: 0

开放问题: 0

类型:symfony-bundle

v1.0.0 2019-08-17 13:50 UTC

This package is auto-updated.

Last update: 2019-12-24 22:03:13 UTC


README

在Symfony应用程序中提供Laravel的命令调度逻辑。

安装

$ composer require loyaltycorp/schedule-bundle

在此捆绑包创建配方之前,您需要手动注册它

// config/bundles.php

return [
    // Other bundles...
    
    LoyaltyCorp\ScheduleBundle\ScheduleBundle::class => ['all' => true],
];

使用

注册您的计划命令

为了注册此捆绑包实现的计划命令,它通过Symfony的自动配置功能,实现了一个“计划提供者”的概念,您只需要创建实现LoyaltyCorp\ScheduleBundle\Interfaces\ScheduleProviderInterface的服务。传递给schedule方法的ScheduleInterface提供了Laravel控制台计划的所有功能。

// src/Schedule/MyScheduleProvider.php

use LoyaltyCorp\ScheduleBundle\Interfaces\ScheduleProviderInterface;

final class MyScheduleProvider implements ScheduleProviderInterface
{
    /**
     * Schedule command on given schedule.
     *
     * @param \Loyaltycorp\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