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 Scheduled Task Bundle Laravel Package

halloverden/symfony-scheduled-task-bundle

A Symfony bundle for defining and running scheduled tasks using Symfony's scheduler and messenger components, with attribute-based task configuration and a clean integration into your existing Symfony application.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Recurring-work feature decisions: this package is a thin bridge between two things most Symfony shops already own — cron expressions and symfony/messenger. It supports decisions like "should this nightly reconciliation / digest email / stale-record cleanup / cache warm / webhook retry loop be a scheduled message instead of a bespoke console command wired into crontab?"
  • Build vs. buy vs. adopt: it makes concrete the choice between (a) hand-rolled crontab entries calling bin/console commands, (b) a bundle like this that emits Messenger messages on a schedule, or (c) Symfony's own native Scheduler component. This is the central PM decision the package informs.
  • Roadmap sequencing for async infrastructure: if recurring jobs are going to outlive one feature, the decision is really "do we standardise a scheduling abstraction now, or keep shipping one-off cron entries?" Adopting a bundle is a low-commitment way to standardise before you know your real requirements.
  • Use cases it fits: periodic integrations (CRM/ERP sync), notification digests, report generation, idempotent cleanup jobs, outbox/retry sweeps, health-check pings, license/entitlement refresh — anything where "every N minutes, enqueue a message" is the whole requirement.
  • Platform-standardisation decision: whether a Symfony Messenger-centric team declares "scheduled work = a message on the bus" as an architectural convention, which affects observability, retry policy, and dead-letter handling downstream.

When to Consider This Package

Consider it when:

  • You are on Symfony (note: despite the brief's framing, this is a Symfony bundle, not Laravel — a Laravel codebase should use Illuminate\Console\Scheduling and stop here).
  • You already run symfony/messenger in production, with workers, transports, and retry/dead-letter behaviour you trust. The bundle's value is entirely leverage on infrastructure you already paid for.
  • You are on a Symfony version older than 6.3, i.e. before the native Scheduler component existed, and you don't want to upgrade now.
  • The requirement is genuinely "cron expression → message." If you need calendars, timezones, jitter, catch-up semantics, or per-task locking, write the spec first.
  • You are comfortable treating the dependency as vendor-and-fork-able: MIT licence, small surface area, so it can be pinned, read, and patched in an afternoon.

Look elsewhere when:

  • Symfony 6.3+ — the native Scheduler component covers recurring messages, cron expressions (dragonmantank/cron-expression), and Messenger integration with first-party support and a documented upgrade path. Adopting a 5-star bundle over a core component is a hard sell.
  • Laravel or any non-Symfony stack.
  • You need operational guarantees the package does not claim: distributed locking / single-runner semantics across N app servers, execution history, alerting on missed runs, or a UI. Those belong to a hosted scheduler (Cronitor, Healthchecks) or a workflow engine (Temporal, Symfony Workflow + Messenger), not to this.
  • Supply-chain or maintenance risk is unacceptable. Five stars, zero dependents, single maintainer: this is unvalidated in the wild. In a regulated or high-availability context, that alone is disqualifying.
  • You lack in-house PHP capacity to own it after adoption. Budget it as "we are adopting a snippet we must maintain," not "we are buying a product."

How to Pitch It (Stakeholders)

For executives: This is a small, MIT-licensed open-source component that lets our Symfony application schedule recurring background jobs — nightly syncs, digest emails, cleanups — by pushing messages onto the job queue we already operate. It is not a new platform; it is glue. The strategic case is avoided cost: it replaces scattered crontab entries and one-off console commands with a single, inspectable convention, which reduces the operational surface area our team has to reason about. The honest caveat is maturity: it has minimal adoption (single-digit stars, no known dependents), so we should treat it as a vendored utility we own and can replace, not a vendor relationship. Estimated integration effort is days, not weeks; estimated exit cost is similarly small, which is exactly why the risk is acceptable for a first iteration.

For engineering: It maps cron expressions to Messenger dispatches, so scheduled work inherits your existing transport, retry, and failure handling — no parallel execution model. The decision to make is whether we adopt this or move to Symfony's native Scheduler component; for anything on 6.3+ the native component wins on support and longevity, and this bundle's main justification is legacy-version inertia or a preference for bundle-style configuration. If we adopt, we pin the version, read the source before merging (it is small), add a test that asserts each scheduled task dispatches the expected message, and document the fallback. Do not let this become the place where locking, missed-run alerting, or multi-node coordination get quietly bolted on — those are separate, explicit decisions.

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.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core