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

Job Queue Bundle Laravel Package

jms/job-queue-bundle

A Symfony bundle that adds a persistent, Doctrine-backed job queue to your application. It supports job scheduling, dependencies, retries, parallel workers, and a web interface for monitoring and managing queued jobs.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for async execution of CLI work. This package answers a very specific question: "how do we stop running long Symfony Console commands inside web requests or brittle crontabs?" It gives you a Doctrine-backed job table, a worker daemon, cron-style scheduling, retries, and an admin UI for job status out of the box. If your roadmap includes "move report generation / imports / exports / sync jobs off the request path," this is a candidate to evaluate against building that plumbing yourself or paying for a managed queue.
  • Whether to standardize on a database-backed queue or invest in broker infrastructure. Because jobs live in your existing relational database, adoption is an infrastructure-free decision — no Redis, RabbitMQ, or SQS to procure, secure, monitor, or budget for. That is a legitimate roadmap-level tradeoff (lower ops cost and faster time-to-first-job vs. lower throughput ceiling and DB contention risk).
  • Scope of an internal admin/observability feature. The bundled web UI for inspecting running, failed, and scheduled jobs can replace a "build an internal job dashboard" backlog item. That's a real sprint saved — or a real sprint lost if the UI's assumptions don't match your auth, tenancy, or audit requirements.
  • Scheduling strategy: cron vs. in-app scheduler. If you're deciding between "N crontab entries per environment" and "one scheduler process that owns all recurring work," this package supports the latter and consolidates operational surface area.
  • Job dependency and sequencing use cases. Chained/retried jobs against the same ORM entities suggest fit for pipeline-shaped work (import → transform → publish) rather than high-volume, low-latency task dispatch.
  • A "do nothing / keep crontab" baseline. Because the package is small and unopinionated, a PM can honestly price the status quo against a thin adoption: the decision is reversible, which lowers the cost of trying it.

Important caveat for a Laravel product: despite being a PHP package, this is a Symfony bundle built around Symfony Console, the Symfony DI container, and Doctrine ORM. It does not drop into a Laravel app. For a Laravel codebase the supported answer is Laravel's own queue + scheduler (optionally Horizon), and this package should be treated as "not applicable" rather than "evaluated and rejected." The assessment below assumes a Symfony/Doctrine context; if the product is Laravel-first, the correct PM decision is to close this out immediately and reallocate the evaluation slot.

When to Consider This Package

Consider it when all of the following hold:

  • You have an existing Symfony application already using Doctrine ORM — the job entity, schema, and worker assumptions all lean on it.
  • You have a meaningful inventory of existing Console commands you want to promote to background execution without rewriting them as message handlers.
  • Your volume is moderate and bursty, not sustained high throughput — a DB-polling worker is the bottleneck you should plan around.
  • You want recurring/scheduled jobs and a job-inspection UI from one dependency, and you're comfortable owning that UI's fit-and-finish.
  • You are willing to fork and maintain the package, or you're running a Symfony version it still supports.

Look elsewhere when:

  • You're on Laravel (or any non-Symfony framework). Use the framework's native queue; this is not a portable PHP library.
  • Maintenance health matters. No release since September 2019, a small star count (~334), and effectively no downstream dependents signal an unmaintained dependency. Adopting it means accepting a permanent fork-ownership tax and an eventual migration — price that into the roadmap now, not later.
  • You need modern runtime support. Compatibility with current PHP and Symfony major versions is unverified and unlikely to be clean; assume integration work and possible patching.
  • You want the framework-native answer. Symfony's Messenger component covers async dispatch, retries, failure transport, and scheduling with first-party support — that is the strategically correct "buy" for a Symfony shop in 2025+.
  • Throughput, at-least-once semantics, or horizontal worker scaling are hard requirements — you want a real broker.

How to Pitch It (Stakeholders)

One-liner: A small, self-contained library that turns existing Symfony console commands into scheduled, retried, observable background jobs using the database you already run — with the significant caveat that its last release was in 2019 and it does not apply to our Laravel services.

For executives: This is a time-to-ship lever, not a platform bet. It would let us move slow, cron-driven work off the request path in days rather than weeks, with no new infrastructure spend and no vendor contract. The cost is risk: the project is effectively unmaintained, so if we adopt it we are also committing to owning a fork and to a future migration. Recommendation: treat it as a short-term unblock or a spike, and route any durable investment toward first-party framework tooling (Symfony Messenger) or our existing Laravel queue stack. Do not put it on a multi-year architecture diagram.

For engineering: Zero new infrastructure; jobs persist in the existing Doctrine schema; you keep writing Console commands rather than adopting a new message contract; you get retries, cron scheduling, and status introspection for free. The tradeoffs are real: DB-polling throughput ceiling, tight coupling to old Symfony/Doctrine versions, and no upstream security or compatibility patches. If we proceed, scope it as a timeboxed proof of concept behind an internal interface, so a swap to Messenger (or the Laravel queue) is a contained change rather than a rewrite.

Ask: Approve a one-sprint spike on a single non-critical job, with an explicit exit criterion — if the package requires more than a day of compatibility patching, we stop and go native.

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.
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
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource