colourstream / cron-bundle
此包提供Symfony2命令的定时执行
dev-master
2012-10-10 09:45 UTC
Requires
- php: >=5.3.2
- doctrine/doctrine-bundle: *
- symfony/symfony: 2.1.*
This package is not auto-updated.
Last update: 2024-09-28 13:45:58 UTC
README
此包提供了一种简单的接口,用于在您的应用程序中注册重复的定时任务,包括对主机不允许命令行访问的安装的支持(待办事项)。
此包仅在Symfony 2.1上进行了测试。它可能适用于Symfony 2.0,但可能因情况而异。
安装
可以通过以下简单步骤安装此包:
- 将包添加到您的项目作为composer依赖项
// composer.json { // ... require: { // ... "colourstream/cron-bundle": "dev-master" } }
- 更新您的composer安装
composer update
- 将包添加到您的应用程序内核
// application/ApplicationKernel.php public function registerBundles() { // ... $bundle = array( // ... new ColourStream\Bundle\CronBundle\ColourStreamCronBundle(), ); // ... return $bundles; }
- 更新您的数据库模式
app/console doctrine:schema:update
- 开始使用此包
app/console cron:scan app/console cron:run
自动运行cron作业
此包的设计理念是您的任务将以最小的时间间隔运行 - 任务将不会比您计划得更频繁地运行,但它们只能在您触发时运行(通过运行 app/console cron:run
或即将推出的网络端点,用于与webcron服务一起使用)。
为了便于实现,您可以在系统上创建如下cron作业:
*/5 * * * * /path/to/symfony/install/app/console cron:run
这将安排您的任务最多每5分钟运行一次 - 例如,计划每3分钟运行的任务将只在每5分钟运行。
创建自己的任务
使用CronBundle创建自己的任务非常简单 - 您只需创建一个普通的Symfony2命令(或ContainerAwareCommand),并使用下面的@CronJob注解标记它,如下所示
/** * @CronJob("PT1H") */ class DemoCommand extends Command { public function configure() { // Must have a name configured // ... } public function execute(InputInterface $input, OutputInterface $output) { // Your code here } }
间隔规范(如上例中的"PT1H")在DateInterval文档页面上有说明,并且可以随时修改。为了使CronJob在未来的运行中扫描和包含,您必须首先运行app/console cron:scan
- 它将在您下次运行app/console cron:run
时安排运行。