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

whatwedo/cron-bundle

A Symfony bundle for managing scheduled cron jobs in code. Define recurring tasks and run console commands on configurable schedules, keeping cron configuration versioned and integrated with your Symfony application.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — poor for a Laravel estate. The package is a Symfony Bundle (whatwedo/cron-bundle), not a Laravel package. It assumes the Symfony runtime: a Kernel::registerBundles() bootstrap, the Symfony DI container, compiler passes, and service tagging for console commands. Laravel has no analogous bundle concept. Functionally it overlaps almost entirely with Illuminate\Console\Scheduling\Schedule, which already provides cron-expression evaluation, withoutOverlapping(), onOneServer(), runInBackground(), and before/after hooks — features this bundle does not visibly replicate. Adopting it would mean running two scheduling paradigms in one codebase or building a bridge that exists only to reach parity with the framework's built-in capability.

Integration feasibility — technically possible, economically unjustifiable. Composer will install it (MIT, plain PHP), but nothing will auto-register it. A real integration requires either (a) instantiating a Symfony container inside a Laravel service provider purely to host the bundle, or (b) forking and extracting the cron-parsing/execution logic into a Laravel-native command. Both are multi-day efforts to reproduce functionality available for free. There is no adapter layer, no Laravel service provider, and no documented cross-framework usage.

Technical risk — high, driven by zero ecosystem validation. Zero stars and zero dependents means no production evidence, no third-party bug reports, and no community patch surface. Maintenance is single-vendor (whatwedo); the repository's activity level is unverified, so abandonment is a live possibility. Version constraints against PHP and Symfony majors are unknown and would need to be read from composer.json before any decision. MIT licensing is clean, but a low-visibility package with no dependents carries elevated supply-chain review cost relative to its value.

Key questions for the vendor/maintainer:

  • What PHP and Symfony versions are supported, and is there a release cadence or stated support window?
  • Does the bundle implement overlap locking, distributed/multi-host safety, and timezone-aware scheduling?
  • How are failures surfaced — exit codes, logs, retries, alerting hooks?
  • Is there test coverage, CI, and a security disclosure process?
  • Is the scheduling configuration code-driven (attributes/config) or database-driven, and can it be introspected?

Recommendation: reject for Laravel adoption; retain only as a reference implementation if a Symfony service already depends on it.

Integration Approach

Stack fit. Laravel-first shops should treat this as a non-candidate. The idiomatic equivalent is a single crontab entry — * * * * * cd /path && php artisan schedule:run >> /dev/null 2>&1 — plus schedule definitions in routes/console.php or bootstrap/app.php. Where the organization also operates Symfony services, the bundle is a reasonable, if unvalidated, fit there and should stay scoped to those services rather than being generalized.

Migration path. The realistic direction is away from this bundle, not toward it. If a Symfony application using it is being consolidated onto Laravel, map each scheduled entry to a Laravel Schedule entry: cron expressions translate 1:1 via ->cron(), and Symfony command invocations become ->command() or ->call(). Attribute- or config-declared schedules should be inventoried first, because implicit registration is the most common source of missed jobs during a port.

Compatibility concerns.

  • Two schedulers in one runtime create two sources of truth and guaranteed drift; pick one per application.
  • Cron semantics differ at the edges: DST transitions, @reboot-style directives, and overlap behavior are not standardized across implementations.
  • Composer constraints must be checked against the target PHP version before any spike; an unmaintained bundle pinning an old Symfony major will block framework upgrades.
  • Any bridging code becomes permanent internal maintenance with no upstream support.

Sequencing.

  1. Inventory every scheduled job, its cadence, host affinity, and side effects.
  2. Confirm whether any Symfony runtime is genuinely required; if not, stop and use Laravel's scheduler.
  3. Build a mapping table (source definition → target Schedule definition) and review it with the owning team.
  4. Run both schedulers in parallel in non-production with output diffing for one full cycle, including a deploy window and a DST boundary if applicable.
  5. Cut over, remove the crontab entry for the bundle, then remove the dependency.
  6. Decommission the bundle only after a full week of clean parity.

Estimated effort for a typical 10–20 job migration: 3–5 engineer-days plus one release cycle of parallel observation.

Operational Impact

Maintenance. Adopting this package means accepting an unaudited dependency with no community backpressure. Any bug fix becomes an internal fork or an upstream PR to a maintainer with no obligation to respond. Budget ongoing ownership, not a one-time integration cost. The cheaper long-term position is to depend on the framework's scheduler, which is covered by Laravel's release and security process.

Support. No SLA, no vendor contract, no observable issue-tracker velocity. On-call runbooks would have to be written from source. If the bundle is already in production in a Symfony service, assign a named internal owner and pin the version explicitly.

Scaling. Cron-on-every-host is the classic scaling failure: horizontally scaled app servers each fire the job, producing duplicate side effects unless a distributed lock exists. Laravel addresses this with onOneServer() backed by a shared cache store; this bundle's equivalent is unverified and should be assumed absent until proven. For multi-node deployments, treat per-host execution as a defect, not a configuration option.

Failure modes to plan for.

  • Overlapping executions of long-running jobs with no mutual exclusion.
  • Silent failures — non-zero exit codes with no alerting path or dead-man's-switch.
  • Missed runs during deploys, restarts, or container reschedules, with no catch-up semantics.
  • Timezone and DST drift producing double or skipped executions.
  • No retry/backoff, pushing recovery logic into each command.
  • Configuration drift between the bundle's schedule definitions and any documentation.

Ramp-up. For a Symfony-fluent engineer, hours: the bundle is small and the domain is familiar. For a Laravel team, the cost is not learning the bundle but the context switch into Symfony DI idioms — a tax paid for capability the team already has. Net ramp-up is effectively negative value, and the onboarding documentation burden exceeds the tool's surface area.

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.
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
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console