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

Symfony Schedule Bundle Laravel Package

m-adamski/symfony-schedule-bundle

A Symfony bundle for scheduling recurring tasks and console commands. Define schedules in configuration, run jobs on cron-like intervals, and integrate cleanly with Symfony's console and dependency injection.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Scheduled-job capability in a Symfony service: this bundle still packages the “define recurring tasks in code, run them from one system cron entry” pattern. It remains the decision point for “do we manage 40 crontab lines across app servers, or do we own one schedule:run invocation and version our schedules with the app?”
  • Build vs. buy vs. borrow: the surface area is small (a bundle, a scheduler, cron-expression parsing, likely a lock/mutex to prevent overlapping runs). The realistic options remain (a) adopt this, (b) build ~200 lines in-house, (c) use the first-party symfony/scheduler component. This package is still best framed as “borrow, and be prepared to vendor/fork” rather than a strategic buy.
  • Version/compatibility decision: 4.0.0 adds Symfony 7.x compatibility and is a major-version release, which likely means a breaking change — most plausibly dropping older Symfony/PHP support. That is useful for Symfony 7 shops, but it does not change the strategic comparison against the first-party scheduler.
  • Roadmap scoping for recurring work: report generation, cache warm-up, nightly syncs, reminder/notification fan-out, cleanup jobs. If those are on the roadmap, this is still the cheapest path to shipping them without new infrastructure — provided the Symfony version fits.
  • Reduce operational tickets: consolidating cron definitions into the repo removes the “who added that crontab on prod-2?” class of incidents and makes schedules code-reviewable and deployable.
  • Ecosystem mismatch (important): this is a Symfony bundle, not a Laravel package. For a Laravel codebase the decision is effectively pre-made — Illuminate\Console\Scheduling is first-party, documented, and battle-tested. Adopting this bundle there is not viable.
  • Supply-chain posture: the new 4.0.0 release shows the package is not abandoned and now targets Symfony 7.x, but it remains a single-maintainer, low-adoption dependency (13 stars, 0 dependents). That still caps how central this can be to the product.

When to Consider This Package

Consider it when:

  • You are on Symfony 7.x and want declarative, in-repo schedule definitions instead of per-host crontabs.
  • Your scheduling needs are simple and single-node-ish: a handful to a few dozen recurring tasks, overlap prevention being the only real concurrency requirement.
  • You have no dedicated scheduling platform (no Kubernetes CronJobs, no Airflow/Temporal/Dagster, no managed cloud scheduler) and no appetite to add one for this.
  • You accept a low-adoption, single-maintainer MIT dependency and have the engineering capacity to fork and patch it.
  • You are willing to pin to the 4.x major and verify that its Symfony/PHP constraints match your platform before committing.

Look elsewhere when:

  • You’re on Laravel — use the native scheduler.
  • You’re on Symfony 6.3+ — the official symfony/scheduler component covers most of this with first-party support and a real maintenance commitment. This should remain the default comparison, and it likely wins on every axis except “already written.”
  • You’re on Symfony versions older than 7.x — 4.0.0’s “Symfony 7.x” note suggests the new major line may not support your platform; check whether an older major is still viable and maintained, or avoid the dependency.
  • You need distributed guarantees (at-most-once/exactly-once across many workers, retries, backoff, dead-letter, execution history/UI) — go to Symfony Messenger + a real scheduler, or a managed orchestrator.
  • You’re in a regulated or high-availability environment where an unmaintained dependency in the deploy path is unacceptable.
  • The job list will grow past ~50 or needs per-tenant dynamic scheduling — you want a platform, not a bundle.

The 4.0.0 release reduces the “dead dependency” objection for Symfony 7 teams, but it does not make this a first-party or strategically central component. Treat adoption as a spike with an exit plan, and pin/commit-lock whatever you take on.

How to Pitch It (Stakeholders)

To executives: A small, MIT-licensed Symfony add-on that lets us define recurring background jobs inside our codebase instead of scattering cron entries across servers. It removes a class of operational mistakes and is cheap to trial. The new 4.0.0 release adds Symfony 7.x compatibility, which is a positive maintenance signal, but the package still has minimal community adoption and a single maintainer — and Symfony now ships an official equivalent. Our recommendation is therefore unchanged: do not standardize on it without comparing against the official component. Run a short spike against symfony/scheduler and this bundle, pick one this sprint, and pin the major version either way. Total cost is small; the risk of adopting the wrong one is ongoing maintenance burden.

To engineering: The 4.0.0 release is essentially a Symfony 7.x compatibility bump, not a feature expansion. Because it is a major-version release, assume breaking changes: verify PHP/Symfony constraints, check whether older Symfony lines are dropped, and pin to 4.x if we proceed. Priority order remains: (1) symfony/scheduler if we’re on 6.3+, (2) this bundle if it is materially simpler and we’re willing to fork, (3) Laravel native scheduler if the codebase is Laravel — in which case this package is off the table entirely. Budget half a day to validate constraints before committing.

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.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel