hexalgo-labs / cron-style-scheduler-bundle
Manage your automated commands execution by using annotation which use cron expression. Compatible with Symfony 4 and 5.
Installs: 271
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: ^7.1|^8.1
- cocur/background-process: ^0.7.0
- doctrine/annotations: ^1.13
- dragonmantank/cron-expression: ^3.1
- symfony/console: ^3.4|^4|^5
- symfony/dependency-injection: ^3.4|^4|^5
- symfony/framework-bundle: ^3.4|^4|^5
- symfony/property-access: ^3.4|^4|^5
This package is auto-updated.
Last update: 2025-03-13 18:12:24 UTC
README
This bundle allow you to manage your automated command execution directly on your Symfony command with an annotation.
Install the bundle
To install this bundle you need to do two things:
- Add the dependency in your project with composer
- Add an entry in crontab to launch the main command every minute
Install the dependency
You can install the bundle via composer this command
composer require hexalgo-labs/cron-style-scheduler-bundle
Add an entry in crontab
Add the following line in crontab
* * * * * php /path/to/your/project/bin/console cron:run >> /dev/null 2>&1
This command will be executed every minute, and will check if there is command which is due and launch it
How to use it
On your Symfony command, add the annotation CronCommand with the cron expression on the class.
For example:
use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Hexalgo\CronStyleSchedulerBundle\Annotation\CronCommand; /** * @CronCommand("30 * * * *") */ class MyTestCommand extends Command { public static $defaultName = 'app:test-command'; protected function execute(InputInterface $input, OutputInterface $output) : int { return 1; } }
This command will be executed every 30 minutes.
To help you to create the cron expression you can use https://crontab.guru.
Note for Windows user
When using this bundle with Windows, the command will not be executed in background when you start the command cron:run. The command will wait until all the launched commands are executed completely before finishing.
Hexalgo
We are a french agency specialized in Symfony applications for business.
TO DO
- Add command log
- Send email / notification after command completion (fail or success)
- Write tests