A Symfony bundle for managing scheduled cron jobs within your application.
This bundle builds upon the foundation provided by shapecode/cron-bundle. Thanks to the original authors and contributors for their excellent work.
composer require 4lxndr/cron-bundle
If Symfony Flex doesn't auto-register the bundle, add it to config/bundles.php:
return [
// ...
Shapecode\Bundle\CronBundle\ShapecodeCronBundle::class => ['all' => true],
];
Update your database schema:
php bin/console doctrine:schema:update --force
Create a Symfony console command and add the AsCronJob attribute:
use Shapecode\Bundle\CronBundle\Attribute\AsCronJob;
use Symfony\Component\Console\Command\Command;
#[AsCronJob('*/5 * * * *')]
class MyTaskCommand extends Command
{
protected function configure(): void
{
$this->setName('app:my-task');
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
// Your task logic here
return Command::SUCCESS;
}
}
Scan and run your jobs:
php bin/console shapecode:cron:scan
php bin/console shapecode:cron:run
Add to your system crontab to run automatically every 5 minutes:
*/5 * * * * php /path/to/project/bin/console shapecode:cron:run
When upgrading to a version that adds new columns (tags, dependencies, pause windows), migrate your database:
bin/console doctrine:migrations:diff
bin/console doctrine:migrations:migrate
bin/console shapecode:cron:scan
How can I help you explore Laravel packages today?