Repository navigation
Cronjobs
Sven edited this page Dec 22, 2017
·
9 revisions
* * * * * php /var/www/bin/console pm:tool:cron -r one_minute --env=prod > /dev/null 2>&1
*/2 * * * * php /var/www/bin/console pm:tool:cron -r two_minutes --env=prod > /dev/null 2>&1
*/5 * * * * php /var/www/bin/console pm:tool:cron -r five_minutes --env=prod > /dev/null 2>&1
*/10 * * * * php /var/www/bin/console pm:tool:cron -r ten_minutes --env=prod > /dev/null 2>&1
*/20 * * * * php /var/www/bin/console pm:tool:cron -r twenty_minutes --env=prod > /dev/null 2>&1
0 * * * * php /var/www/bin/console pm:tool:cron -r one_hour --env=prod > /dev/null 2>&1
0 12 * * * php /var/www/bin/console pm:tool:cron -r daily_noon --env=prod > /dev/null 2>&1
0 6 * * * php /var/www/bin/console pm:tool:cron -r daily_morning --env=prod > /dev/null 2>&1
0 3 * * * php /var/www/bin/console pm:tool:cron -r daily_night --env=prod > /dev/null 2>&1
59 3 * * * php /var/www/bin/console pm:tool:cron -r first_day_of_month --env=prod > /dev/null 2>&1
services.yml
acme.listener.your_cronjob_listener:
class: AcmeBundle\Listener\YourCronjobListener
tags:
- { name: kernel.event_listener, event: pm__tool.framework_events.cron_event, method: onEveryMinuteRepeated, priority: 1 }
# Available for Symfony3: - { name: kernel.event_listener, event: console.command, method: onConfiguration, priority: 1 }
YourCronjobListener.php
namespace AppBundle\EventListener;
use PM\Bundle\ToolBundle\Framework\Events\CronEvent;
use PM\Bundle\ToolBundle\Framework\Interfaces\CronEventListenerInterface;
/**
* Class YourCronjobListener
*
* @package AppBundle\EventListener
*/
class YourCronjobListener implements CronEventListenerInterface
{
/**
* Every Minute
*
* @param CronEvent $event
*
* @return null
*/
public function onEveryMinuteRepeated(CronEvent $event)
{
if (false === $event->isExecuting($this, self::getRepeatedType())) {
return null;
}
/* Your code */
}
/**
* On Configuration (Available since Symfony 3)
*
* @param ConsoleCommandEvent $event
*/
public function onConfiguration(ConsoleCommandEvent $event)
{
if ($event->getCommand() instanceof CronCommand) {
$event->getCommand()->addOption('some-option', null, InputOption::VALUE_OPTIONAL, 'Some extra option for cronjobs', []);
}
}
/**
* Get Repeated Type
*
* @return string
*/
public static function getRepeatedType()
{
return CronEvent::REPEATED_EVERY_MINUTE;
}
}
You can call your Listener without any other:
php bin/console pm:tool:cron --target=YourCronjobListener