Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Console Command Scheduler Bundle

Console Command Scheduler Bundle Laravel Package

bytespin/console-command-scheduler-bundle

ByteSpin Console Command Scheduler is a Symfony 6.3+ bundle for scheduling console commands via Messenger Scheduler, logging execution time, duration and return codes to database and log files, with an EasyAdmin interface and extendable email notifications.

View on GitHub
Deep Wiki
Context7

ByteSpin ConsoleCommandSchedulerBundle is a simple Symfony 6.3+ bundle for scheduling console commands using the Messenger/Scheduler components. It records every execution—last run time, duration and return code—in the database and log file, and ships with an EasyAdmin interface. Originally built for an ETL project, it stays intentionally lightweight and is currently in beta.

  • Schedule console commands with Symfony Scheduler
  • Log execution time, duration and return code
  • Admin UI powered by EasyAdmin
  • Events for custom integration and notifications
  • Extendable email notification system

Requires PHP 8.2+ and Symfony 6.3+; register the bundle manually and update your schema after installation.

Frequently asked questions about Console Command Scheduler Bundle
Is bytespin/console-command-scheduler-bundle compatible with Laravel?
No. Although it is distributed on Packagist as a Composer package, this is a Symfony bundle built on Symfony Messenger, Scheduler, Doctrine ORM, and EasyAdmin, and it exposes no Laravel integration surface. Its scheduling model (RecurringMessage::every and ::cron), service container wiring, entity mapping, and admin controllers are all Symfony idioms. If your application is Laravel, treat it only as a design reference and build against Schedule::command instead, because a port would be a from-scratch effort.
How do I install bytespin/console-command-scheduler-bundle?
Run composer require bytespin/console-command-scheduler-bundle, manually register the bundle in config/bundles.php, run the bytespin:configure-console-command-scheduler command, verify your doctrine.yaml mappings, and apply the schema with doctrine:schema:update --force. There is no Symfony Flex recipe, so every step is a manual checklist. Watch out for the README install line, which spells the package console-commande-scheduler-bundle with a trailing e; confirm the real package name on Packagist before adding it to a build.
Which Symfony and PHP versions does this bundle support?
The README states PHP 8.2+ and Symfony 6.3+. Symfony Scheduler was still experimental in 6.3, and the documentation says nothing about Symfony 7 or Doctrine ORM 3, so verify compatibility on a branch before adopting. If you are on an older Symfony release or PHP 8.1, this bundle is not an option.
How does the bundle log console command executions?
It records each run's last execution time, duration, and return code in the database through a SchedulerLog entity, and it also writes to the log file. The EasyAdmin interface surfaces those rows, including an invalid badge when an entry fails validation. Because the entities are mapped from the vendor directory, the log table becomes part of your application schema.
Do I need EasyAdmin to use this bundle?
EasyAdmin is a hard dependency for the shipped admin UI, and the bundle does not include a DashboardController, so you have to wire the dashboard yourself. The core scheduling path is the Messenger/Scheduler integration plus events, which should in principle work headless, but that is unverified in the README. Spike a headless setup before committing if you do not already run EasyAdmin.
Why does installing this bundle require changing Doctrine auto_mapping?
The Scheduler and SchedulerLog entities live in vendor/bytespin/console-command-scheduler-bundle/src/Entity and are mapped directly into your application's entity manager. That forces you to disable auto_mapping and explicitly remap every entity in your app, which is a project-wide configuration change. In a multi-entity-manager application the blast radius is significant, so plan the mapping work before installing.
How should I manage schema changes instead of doctrine:schema:update --force?
The bundle ships no migrations, so schema is driven by doctrine:schema:update --force, which most production pipelines prohibit. Generate Doctrine migrations against the vendor entities and commit them, then re-check them on every upgrade. The README also contradicts itself on which releases changed the schema, citing both 1.0.13 and 1.1.0, so diff the entities after each update.
What events does the bundle dispatch for custom integration?
It dispatches events around scheduling and failures, including a SchedulerEntryFaultedEvent that isolates a fault to a single entry instead of aborting the whole run. Those hooks let you plug in your own notification system, including the extendable email notification layer. Use them to route alerts into Slack, PagerDuty, or your existing mailer.
How can I catch broken schedule entries in CI?
Run bytespin:scheduler:lint in your pipeline; it exits non-zero when an entry is invalid, which turns a runtime class of failure into a CI gate. The bundle also applies class-level validation that rejects a cron expression typed into the interval field. Together these are the most valuable reliability features in the package.
Is this bundle production-ready and actively maintained?
It is self-declared beta with a bus factor of one, no stars, and no dependents, so plan for self-support and read the source before adopting. The 2.1 reliability work, per-entry fault isolation, and the lint command are above average for a solo package and suggest genuine production use. If you need guaranteed upstream support or shipped migrations, consider Symfony's native Scheduler with your own persistence layer instead.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log
hsluv/hsluv