Weave Code
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

Command Scheduler Bundle Laravel Package

dukecity/command-scheduler-bundle

Symfony bundle to schedule console commands with cron expressions. Manage native and custom commands, backed by database storage and optional Doctrine migrations. Supports modern PHP/Symfony versions; see wiki for configuration, execution, and upgrade notes.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. Buy: Buy – Eliminates the need to build a custom cron job management system for Symfony console commands, saving engineering time and reducing technical debt.
  • Feature Roadmap:
    • Automated Task Scheduling: Replace manual cron job management with a centralized, UI-driven scheduler for Symfony commands (e.g., data cleanup, reports, API syncs).
    • Auditability & Debugging: Track command execution history, failures, and logs via the admin dashboard (e.g., /command-scheduler/list).
    • Extensibility: Customize scheduled commands with metadata (e.g., customField for tracking business logic like "invoice_generation_run_id").
    • Security: Role-based access control (e.g., restrict scheduling to ROLE_ADMIN).
  • Use Cases:
    • Internal Tools: Schedule recurring maintenance tasks (e.g., cache warming, database optimizations).
    • Data Pipelines: Trigger ETL jobs or API integrations on cron-like intervals.
    • Event-Driven Workflows: Extend with event listeners (e.g., SchedulerCommandFailedEvent) for alerts or retries.
    • Multi-Environment Sync: Deploy schedules via config (e.g., config/packages/dukecity_command_scheduler.yaml) across dev/staging/prod.

When to Consider This Package

  • Adopt if:
    • Your Symfony app relies on console commands for critical or recurring tasks.
    • You need a user-friendly UI to manage cron jobs (vs. editing /etc/crontab manually).
    • Your team wants to avoid cron complexity (e.g., timezones, logging, or dependency management).
    • You require extensibility (e.g., adding custom fields to scheduled commands).
    • Your stack uses Symfony 8.0+ and PHP 8.4+ (or can upgrade).
  • Look elsewhere if:
    • You’re not using Symfony (this is a Symfony-specific bundle).
    • Your tasks require non-cron scheduling (e.g., event-based triggers like webhooks).
    • You need sub-minute granularity (cron expressions are minute-level; consider a queue system like Symfony Messenger for finer control).
    • Your team prefers serverless (e.g., AWS EventBridge) over self-hosted solutions.
    • You’re constrained by legacy PHP/Symfony versions (e.g., PHP <8.4 or Symfony <8.0).

How to Pitch It (Stakeholders)

For Executives: "This package lets us replace scattered cron jobs with a centralized, auditable system for running Symfony commands—like automated reports or data maintenance—directly from our admin panel. It saves dev time, reduces errors from manual cron setup, and gives us visibility into task failures. For example, we could schedule our nightly invoice generation with a single click, track its success/failure, and even add custom metadata (like run IDs) to tie back to our ERP system. The MIT license and active maintenance make it a low-risk choice."

For Engineers: *"This bundle gives us a Symfony-native alternative to cron with these key benefits:

  • No more SSH/crontab edits: Manage schedules via a web UI (/command-scheduler/list).
  • Extensible: Customize the ScheduledCommand entity to add fields like priority or team_owner.
  • Event-driven: Hook into SchedulerCommandFailedEvent for alerts or retries.
  • Modern stack: Supports Symfony 8.x and PHP 8.4+, with active updates.
  • Lightweight: Only ~250 stars but zero dependents means it’s unburdened by legacy cruft. Tradeoff: Requires Doctrine DBAL (but most Symfony apps already use it). Setup is straightforward: composer req dukecity/command-scheduler-bundle, run migrations, and secure the route in security.yaml."*
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.
bugban/symfony
beyonder-capi/workflow-extensions-bundle
beyonder-capi/job-queue-bundle
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin