kmj/cronbundle

Symfony2 Bundle,用于更新和安装本地计算机的crontab中的cron任务

安装量: 1,842

依赖者: 0

建议者: 0

安全性: 0

星标: 3

关注者: 2

分支: 0

类型:symfony-bundle

dev-master 2016-03-29 21:40 UTC

This package is not auto-updated.

Last update: 2024-09-14 14:36:29 UTC


README

欢迎使用KMJCronBundle。本扩展的目标是提供一个简单的cron任务管理方式。它通过搜索所有带有@CronJob注解的Symfony 2命令来实现这一目标。当找到注解时,会将其拆分并安装到当前用户的crontab中。目前此扩展仅支持Linux服务器。已知问题是如果服务器运行cPanel,则无法更新crontab。相反,请手动列出它们并将它们复制到crontab中。

  1. 安装

可以通过Composer方便地安装KMJCronBundle。只需将以下内容添加到您的composer.json文件中

// composer.json
{
    // ...
    require: {
        // ..
        "kmj/cronbundle": "dev-master"
    }
}

然后,您可以通过在位于composer.json文件目录中运行Composer的update命令来安装新的依赖项

    php composer.phar update

现在,Composer将自动下载所有必需的文件,并为您安装它们。接下来,您需要更新您的AppKernel.php文件,并注册新的扩展

// in AppKernel::registerBundles()
$bundles = array(
    // ...
    new KMJ\CronBundle\KMJCronBundle(),
    // ...
);
  1. 用法

KMJCronBundle仅与Symfony 2命令一起工作[了解更多] (https://symfony.com.cn/doc/master/components/console/introduction.html).

在您的命令类顶部包含以下注解

// ..
use KMJ\CronBundle\Annotations\CronJob;
/**
 * @CronJob(hour="0", minute="0")
 */
class ExampleCommand //.. {

   //..

}

此注解告诉KMJCronBundle,您希望运行此命令在午夜12点执行

由于注解被安装到crontab中,因此使用标准cron格式,其中*是通配符。任何未提供的时间范围都是通配符。斜杠也是可用的,但您必须使用/而不是. 在安装时,扩展会将此斜杠转换为点。

因此,具有以下注解的命令

@CronJob(hour="1,4", minute="/5", env="prod")

将在生产环境中只在凌晨1点和4点每五分钟运行一次。