Skip to content

Symfony bundle that will allow you to schedule all your commands just like unix crontab, with a nice admin panel

Notifications You must be signed in to change notification settings

thermsdorff/CommandSchedulerBundle

 
 

Repository files navigation

CommandSchedulerBundle

Code_Checks codecov

This bundle will allow you to easily manage scheduling for Symfony's console commands (native or not) with cron expression. See Wiki for Details

Versions & Dependencies

Version 4.x has the goal to use modern Php and Symfony features and low maintenance. So only Php >= 8.0 and Symfony ^4.4.20|^5.3 are supported at the moment.

The following table shows the compatibilities of different versions of the bundle :

Version Symfony PHP
4.0 (master) ^4.4.20|^5.3 >=8.0
3.x ^4.4.20|^5.3 >=7.3
2.2.x ^3.4|^4.3 ^7.1

Install

When using Symfony Flex there is an installation recipe.
To use it, you have to enable contrib recipes on your project :

composer config extra.symfony.allow-contrib true
composer req dukecity/command-scheduler-bundle

Update Database

If you're using DoctrineMigrationsBundle (recommended way):

php bin/console make:migration
php bin/console doctrine:migrations:migrate

Without DoctrineMigrationsBundle:

php bin/console doctrine:schema:update --force

Install Assets

php bin/console assets:install --symlink --relative public

Secure your route

Add this line to your security config.

- { path: ^/command-scheduler, role: ROLE_ADMIN } 

Check new URL /command-scheduler/list

Features

New in Version 4:

  • API for all functions (in development)
  • Event-Handling (preExecution, postExecution). You can subscribe to this Events
  • Monitoring: Optional Notifications with the Symfony Notifier Component. Default: E-Mail
  • Refactored Execution of Commands to Services. You can use them now from other Services.
  • Handled error in Command Parsing. So there is no 500 Error while parsing commands.
  • You CLI-commands for add, remove and list scheduled commands
  • Improved UI of command-execution in cli

Version 3:

  • An admin interface to add, edit, enable/disable or delete scheduled commands.
  • For each command, you define :
    • name
    • symfony console command (choice based on native list command)
    • cron expression (see Cron format for informations)
    • output file (for $output->write)
    • priority
  • A new console command scheduler:execute [--dump] [--no-output] which will be the single entry point to all commands
  • Management of queuing and prioritization between tasks
  • Locking system, to stop scheduling a command that has returned an error
  • Monitoring with timeout or failed commands (Json URL and command with mailing)
  • Translated in french, english, german and spanish
  • An EasyAdmin 2 + 3 configuration template available here
  • Beta - Handle commands with a deamon (unix only) if you don't want to use a cronjob

Screenshots

list

new

new2

Documentation

See the documentation here.

License

This bundle is under the MIT license. See the complete license for info.

FOSSA Status

About

Symfony bundle that will allow you to schedule all your commands just like unix crontab, with a nice admin panel

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 91.5%
  • Twig 8.0%
  • Other 0.5%