• Stars
    star
    111
  • Rank 313,377 (Top 7 %)
  • Language
    PHP
  • License
    MIT License
  • Created almost 4 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Repetitive tasks as a breath in Symfony

SchedulerBundleHero

Current bundle version Packagist Downloads PHP version requirement Symfony Insight Infection score License FOSSA status

Daily runs
Code style Infection PHPUnit Rector Security Static analysis
Code style Infection PHPUnit Rector Security Static analysis

A Symfony bundle built to schedule/consume repetitive tasks

Main features

  • External transports (Doctrine, Redis, etc)
  • External configuration storage (Doctrine, Redis, etc)
  • Retry / Remove / Sort policies
  • Background worker
  • Symfony/Messenger integration
  • Mercure integration
  • Fibers support

Installation

Make sure Composer is installed globally, as explained in the installation chapter of the Composer documentation.

composer require guikingone/scheduler-bundle

Quick start

If symfony/flex is not installed, manually update the config/bundles.php:

// config/bundles.php

return [
    // ...
    SchedulerBundle\SchedulerBundle::class => ['all' => true],
];

Then configure a transport in config/packages/scheduler.yaml:

# config/packages/scheduler.yaml
scheduler_bundle:
    transport:
        dsn: 'filesystem://first_in_first_out'

Finally, it's time to create a simple task:

# config/packages/scheduler.yaml
scheduler_bundle:
    transport:
        dsn: 'filesystem://first_in_first_out'
    tasks:
        foo:
            type: 'command'
            command: 'cache:clear'
            expression: '*/5 * * * *'
            description: 'A simple cache clear task'
            options:
                env: test

When a task is configured, time to execute it, two approaches can be used:

  • Adding a cron entry * * * * * cd /path-to-your-project && php bin/console scheduler:consume >> /dev/null 2>&1
  • Launching the command scheduler:consume --wait in a background command

Documentation

Contributing

Want to improve this bundle?