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

Cron Bundle Laravel Package

padam87/cron-bundle

Symfony bundle for defining and running cron jobs as annotated services. Schedule tasks with a simple @Cron annotation, prevent overlapping runs with locks, and execute jobs via a console command, keeping scheduled work organized, logged, and easy to test inside your Symfony app.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

Important caveat before anything else: despite the "Laravel/PHP" framing, this is a Symfony bundle (CronBundle for symfony console). It is not designed for Laravel, and Laravel already ships a first-class scheduler. Treat any Laravel evaluation as "read the pattern, don't adopt the package."

With that framed, this package informs these decisions:

  • Scheduling architecture: one dispatcher vs. many crontab lines. The core product decision is whether scheduled work is expressed as a single * * * * * php bin/console <dispatcher> entry with per-job expressions managed in code, or as N independent OS cron entries. This package bets on the former — better for containerized/12-factor deploys, easier to version with the app, easier to audit in code review.
  • Build vs. buy for cron plumbing. The capability (managed recurring console jobs) is maybe a day or two of internal work. Buying (adopting) saves that effort but adds a dependency with a single maintainer and no downstream users.
  • Roadmap enablement, not differentiation. Recurring execution underpins trial-expiry, invoice generation, digests, data syncs, and cleanup. This package is a low-level enabler for those; it should never itself appear on a roadmap as a feature.
  • Whether to invest in in-app schedule configurability. If the product direction is "customers set their own sync frequency," this package does not get you there — jobs are defined in code/config, not in a tenant-editable table. It's a building block at best; the customer-facing schedules model is separate work.
  • Operational surface area. Fewer moving cron parts in deploy manifests and runbooks is a real (if unglamorous) product-ops win.

When to Consider This Package

Consider it if:

  • You run a Symfony Console application on PHP 8.x, and you're comfortable with a single system cron entry invoking a dispatcher command.
  • You have a small, code-owned job set (roughly <20) with no need for distributed locking, retries/backoff, or a scheduling UI.
  • You want job definitions and cron expressions versioned in the repo alongside the code that they trigger.
  • You're deploying to containers/PaaS where one scheduled invocation is materially simpler than many.
  • You need something working this sprint and don't want to hand-roll dispatcher + overlap protection.

Look elsewhere if:

  • You're on Laravel. Use the framework scheduler — don't introduce a Symfony bundle into a Laravel app. This is the most likely outcome and it should be a fast "no."
  • You need distributed locks, retries, dead-letter handling, or at-most-once semantics — that's a queue and worker (Symfony Messenger, Laravel queues/Horizon), not a cron manager.
  • You need non-engineers to edit schedules — that's a product surface you build or buy, not this.
  • You need sub-minute or high-frequency execution — cron is the wrong primitive; use a persistent worker.
  • Dependency risk tolerance is low. 11 stars, 0 dependents, effectively single-maintainer, no ecosystem validation. Mitigation is real and cheap (MIT, small codebase → vendor or fork), but it should be a conscious decision, not an accident.

How to Pitch It (Stakeholders)

For executives (30 seconds): This is a small, MIT-licensed utility that consolidates scheduled background work into a single deployable entry point instead of scattered crontab lines — marginally cheaper to operate and easier to audit. It is not a platform bet: adoption is unproven, the maintainer base is thin, and the switching cost is low because the code is small and permissively licensed. Recommended posture: tactical dependency at most, with an exit plan. For our Laravel services, the honest answer is that we already have this capability for free.

For engineering: It's a thin scheduling layer over Symfony Console — jobs and cron expressions live in config/code, one system cron invokes the dispatcher, the bundle decides what's due. MIT, forkable, small blast radius. Risks are maintenance continuity and the absence of any downstream validation, plus the usual cron gaps (no locking, no retries, no visibility without extra work). If we proceed, isolate it behind an internal Scheduler interface so job definitions survive a swap to Symfony Messenger, Laravel's scheduler, or systemd timers. If we're a Laravel shop, the recommendation is a 1–2 day spike to steal the pattern rather than take the dependency — and a decision to stay on the native scheduler.

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