- Download CronBundle using composer
- Enable the Bundle
- Define crons in your config
Add CronBundle by running the command:
$ php composer.phar require valentinmari/cron-bundle "dev-master"
Composer will install the bundle to your project's vendor/valentinmari
directory.
Enable the bundle in the kernel:
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new CronBundle\CronBundle(),
);
}
Your site is ready to run crons. Now, write them in the config.yml
file.
It's recommended put all crons in a new file named cron.yml
in your config
folder.
#app/config.yml
imports:
# ...
- { resource: cron.yml }
#app/cron.yml
cron:
- { format: '*/1 * * * *', service: test_job }
- { format: '*/1 * * * *', service: test_job }
The format is like Cron, from Unix. You must define a service, this service must
implement JobInterface
and redefine the run() method.
Inside run() you can put your Job and do anything you want. You can inject things
in your service too.
// AppBundle/Services/YourJob.php
namespace AppBundle\Services;
use CronBundle\JobInterface;
class YourJob implements JobInterface{
public function run(){
// Do your stuff.
}
}