sbk / cron-bundle
使用CronBundle,您可以在配置文件中配置cron作业
Requires
- php: >=5.3.2
- mtdowling/cron-expression: 1.0.*
- symfony/framework-bundle: ~2.1
Requires (Dev)
- monolog/monolog: ~1.7.0
- phpunit/phpunit: ~4.3
- symfony/console: ~2.1
- symfony/options-resolver: ~2.1
- symfony/process: ~2.1
This package is not auto-updated.
Last update: 2023-03-29 05:09:50 UTC
README
通过配置设置cron作业的Symfony2 Bundle。
安装
先决条件
此包需要Symfony 2.1+,因为它必须通过composer安装。
使用composer下载SbkCronBundle
将以下内容添加到您的项目中的 composer.json
{ "require": { "sbk/cron-bundle": "dev-master" } }
现在使用以下命令安装它
$ php composer.phar update sbk/cron-bundle
包应该下载到 vendor
目录。
启用包
您需要将包添加到 app/AppKernel.php
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Sbk\Bundle\CronBundle\SbkCronBundle(), ); }
导入服务
CronBundle依赖于某些服务,因此您需要在 app/config/config.yml
中导入服务配置。
imports:
# ...
- { resource: @SbkCronBundle/Resources/config/services.yml }
现在您应该可以使用Cron Manager了。
使用
配置任务
任务可以在 app/config/config(_prod).yml
中配置。
sbk_cron:
tasks:
clearcache:
command: "cache:clear --env=prod"
expression: "0 0 * * *"
listoutput:
bin: "ls"
script: ""
command: "-l > /var/log/listoutput.log"
expression: "@daily"
sbk_cron.tasks
中的每个条目代表一个任务。
command
要执行的命令。默认情况下,cron管理器将在命令名称之前添加 php %kernel.root_dir%/console
,因此配置控制台命令很容易。您可以使用此包运行任何命令,请继续阅读如何做到这一点。
expression
cron表达式,任何有效的表达式,您可以在cron表中输入。
bin
执行命令的二进制文件(默认为 php
,您可以在执行命令中输入 ''
来省略bin)
script
将被调用的脚本(默认为 %kernel.root_dir%/console
)。
运行主cron作业
尽管您可以使用此包配置所有cron作业,但您需要手动在crontab中添加一行,即 cron:run
命令。
* * * * * php /var/www/app/console cron:run
这将每分钟执行一次cron管理器。
管理器将检查哪些任务需要执行,并将为每个到期任务创建后台进程。