dukecity/command-scheduler-bundle

This Symfony bundle will allow you to schedule all your commands just like UNIX crontab

Installs: 1 942

Dependents: 0

Suggesters: 0

Security: 0

Stars: 6

Watchers: 2

Forks: 103

Open Issues: 1

Language:JavaScript

Type:symfony-bundle

v4.0.5 2021-08-06 22:18 UTC

README

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

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

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