4lxndr/cron-bundle

Symfony bundle for scheduled command execution with dependency resolution, job tagging, and automatic failure handling

Maintainers

👁 4lxndr

Package info

github.com/4lxndr/cron-bundle

Wiki

Type:symfony-bundle

pkg:composer/4lxndr/cron-bundle

Statistics

Installs: 143

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.2 2026-03-03 10:12 UTC

Suggests

None

Provides

None

Conflicts

None

Replaces

None

This package is auto-updated.

Last update: 2026-05-31 00:35:34 UTC


README

👁 PHP Version
👁 Latest Stable Version
👁 License

A Symfony bundle for managing scheduled cron jobs within your application.

Acknowledgments

This bundle builds upon the foundation provided by shapecode/cron-bundle. Thanks to the original authors and contributors for their excellent work.

Requirements

  • PHP 8.4+
  • Symfony 7.4+ or 8.0+

Installation

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

Quick Start

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

Documentation

  • Commands — Full reference for all available console commands
  • Configuration — Bundle configuration options
  • Tags — Organizing and filtering jobs with tags
  • Dependencies — Job dependency chains, modes, and failure handling
  • Pause Windows — Defining daily time ranges where jobs are silently skipped

Database Migrations

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