alexandrebulete / ddd-scheduler-bundle
See and run your Symfony Scheduler tasks from the back office: a read-only catalogue (command, cron, next run, last run and status) with a one-click manual run, built on Symfony Scheduler and Messenger.
Package info
github.com/AlexandreBulete/ddd-scheduler-bundle
Type:symfony-bundle
pkg:composer/alexandrebulete/ddd-scheduler-bundle
Requires
- php: ^8.4
- alexandrebulete/ddd-doctrine-bridge: ^1.4
- alexandrebulete/ddd-foundation: ^1.5
- alexandrebulete/ddd-sylius-bundle: ^1.0
- doctrine/dbal: ^4.3
- doctrine/doctrine-bundle: ^2.13 || ^3.0
- doctrine/doctrine-migrations-bundle: ^3.7 || ^4.0
- doctrine/migrations: ^3.8
- doctrine/orm: ^3.3
- dragonmantank/cron-expression: ^3.3
- pagerfanta/core: ^4.0
- psr/clock: ^1.0
- psr/log: ^3.0
- sylius/admin-ui: >=0.10
- sylius/grid-bundle: ^1.13
- sylius/resource-bundle: >=1.14
- symfony/clock: ^7.0 || ^8.0
- symfony/config: ^7.0 || ^8.0
- symfony/console: ^7.0 || ^8.0
- symfony/dependency-injection: ^7.0 || ^8.0
- symfony/doctrine-bridge: ^7.0 || ^8.0
- symfony/event-dispatcher: ^7.0 || ^8.0
- symfony/framework-bundle: ^7.0 || ^8.0
- symfony/http-foundation: ^7.0 || ^8.0
- symfony/messenger: ^7.0 || ^8.0
- symfony/routing: ^7.0 || ^8.0
- symfony/scheduler: ^7.0 || ^8.0
- symfony/security-csrf: ^7.0 || ^8.0
- symfony/translation: ^7.0 || ^8.0
- symfony/uid: ^7.0 || ^8.0
Requires (Dev)
- deptrac/deptrac: ^4.7
- phpstan/phpstan: ^2.1
- phpstan/phpstan-strict-rules: ^2.0
- phpunit/phpunit: ^12.0 || ^13.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
See and run your Symfony Scheduler tasks from the back office.
A read-only catalogue of every recurring task — command, cron expression,
next planned run, last observed run and its status — under System ->
Schedules, with a one-click manual run. Run outcomes are projected into a
small scheduler_run read model from the Messenger worker events.
Standalone: no domain, no project notion. The schedules are declared in configuration.
Configuration
# config/packages/scheduler.yaml scheduler: schedules: - { command: 'outbox:purge', cron: '0 3 * * 0' } - { command: 'activity:purge', cron: '30 3 * * 0' } admin: enabled: true # the back-office screen grid_limits: [25, 50, 100]
The schedule is named default, so Symfony Scheduler exposes it on the
scheduler_default transport. For the tasks to actually fire, a worker must
consume it:
php bin/console messenger:consume scheduler_default async
The catalogue screen works regardless; "last run / status" fills in once the worker has run the tasks (or you hit Run by hand).