bpetheo/yii2-cron

yii2框架的Cron实现。执行在yii配置中定义的预定命令。

安装: 819

依赖: 0

建议: 0

安全: 0

星标: 7

关注者: 2

分支: 1

开放问题: 1

类型:yii2-extension

1.0.7 2017-07-26 09:03 UTC

This package is not auto-updated.

Last update: 2024-09-28 19:58:21 UTC


README

yii2框架的Cron实现。执行在yii配置中定义的预定命令。因此,如果您需要添加/删除或重新安排cron作业,您只需要修改和部署配置文件,无需摆弄crontab或其他操作。如果您正在部署许多应用程序并且/或者部署到多台服务器,这会很有用。只需安装一次服务器端脚本即可使用。服务器端脚本可以处理多个项目(包括自动发现添加/删除的存储库)。它们可以在以下位置找到:https://github.com/bpetheo/autocron-server

您还可以为作业分配标签,因此如果您在多台服务器上使用相同的配置文件,您仍然可以运行不同的cron作业(或具有不同时序的相同作业)

组件将一些基本日志记录到runtime/logs/{command}.{action}.{date}.log

安装

通过composer获取: composer require bpetheo/yii2-cron ~1.0.0

添加到config/console.php中的控制器映射

'controllerMap' => [
    // ...
    'cron' => [
        'class' => 'bpetheo\yii2cron\CronController',
        'defaultAction' => 'run',
    ],
],

配置

在设置时序值时,您可以使用标准的cron语法元素(**/5150,30)。命令应该是./yii的命令/动作参数。例如,如果您将/path_to_project/yii hello/index设置在标准的cron表中,则您想要在配置中使用的命令将是hello/index

完整的配置块看起来像这样

'params' => [
        // other parameters...
        'cronTab' => [
            // run hello/index command every 5 minutes on 21th septermber and
            // 21th december in default and dev environment
            'Sample cronjob - full config' => [
                'enabled' => true,
                'command'=>'hello/index',
                'timing' => [
                    'min' => '*/5',
                    'hour' => '*',
                    'day' => '21',
                    'month' => '9,12',
                    'dayofweek' => '*',
                ],
                'tags' => [
                    'default',
                    'development',
                ],
            ],
        // other parameters...
    ],

您还可以使用简化格式,只需设置与默认值不同的参数

'params' => [
        // other parameters...
        'cronTab' => [
            // execute hello/index every 30 minuted
            // short form, only non-default values are set explicitly
            'Sample cronjob - short config' => [
                'enabled' => true,
                'command'=>'hello',
                'timing' => [
                    'min' => '0,30',
                ],
            ],
        ],
        // other parameters...
    ],

需要command参数。也有简单的字符串格式如* * * * * controller/action可用。

'params' => [
        // other parameters...
        'cronTab' => [
            // both cron jobs controller/action1 and controller/action2
            // valid and runs every minute
            [
                'command'=>'controller/action1',
            ],
            '* * * * * controller/action2',
        ],
        // other parameters...
    ],

贡献

我制作了这个项目来满足我的需求。您可能有不同的用例,这没有被涵盖,但请自由扩展或修改代码,使其适合更多的人。