kmj / cronbundle
Symfony2 Bundle,用于更新和安装本地计算机的crontab中的cron任务
Requires
- php: >=5.3.3
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中。
- 安装
可以通过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(),
// ...
);
- 用法
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点每五分钟运行一次。