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

eo/job-queue-bundle

MongoDB ODM implementation for JMSJobQueueBundle that lets you schedule Symfony2 console commands as background jobs. Requires Symfony 2.1+ and one supervisord-managed eo-job-queue:run process, with a configurable job class.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Feature scoping for scheduled/background work. This package exists to answer one narrow question: "how do we run CLI commands on a schedule or in the background, and keep a record of what ran?" It informs the feature decision of whether to expose scheduling, retries, and run history as a product capability, but it does not itself provide a queue — it is a persistence adapter. It stores job metadata in MongoDB ODM so that JMSJobQueueBundle can schedule Symfony2 console commands as jobs.
  • Storage-layer decision for job metadata. The real decision it supports is "where does job state live?" This package is the MongoDB option; JMSJobQueueBundle's default Doctrine ORM driver is the relational option. That is a genuine architectural fork — document store for high-volume, schema-flexible job payloads vs. relational for transactional consistency and easy joins against business data.
  • Build vs. buy for job orchestration. Given 3 stars, 0 dependents, and readme-only maturity, the buy-vs-build answer is effectively "build or buy something else." The package is a thin adapter, maybe a few hundred lines of glue; a team could replicate it in a sprint. It should be treated as a reference implementation and pattern source, not a procurement candidate.
  • Candidate use cases to evaluate against modern equivalents. Cron replacement, nightly ETL/import jobs, report generation, cache warming, outbound sync to third parties, and any long-running Artisan/console task that currently blocks a request. These are real product needs; the question is which runtime serves them.
  • Roadmap sequencing and technical-debt avoidance. Adopting this would anchor a roadmap to Symfony 2.1+ (released 2012) and an unmaintained dependency chain. The decision it supports is a negative one: explicitly exclude it from the platform plan so engineering doesn't discover it mid-build.
  • Framework-fit validation. Critical PM-level flag: this is a Symfony2 bundle, not a Laravel package, despite being surfaced in a Laravel/PHP package evaluation. It registers via AppKernel, hooks Symfony's console Application class, and depends on JMSJobQueueBundle. It has no service provider, no config/queue.php driver, and no Laravel integration path. For a Laravel-based product the compatibility decision is closed before it opens.

When to Consider This Package

Consider it only if all of the following hold:

  • The application is a Symfony 2.1–2.x codebase that is already committed to JMSJobQueueBundle.
  • MongoDB with Doctrine MongoDB ODM is already the primary persistence layer — you are not introducing Mongo solely for job metadata.
  • The team specifically needs an audit trail of console command executions in the same document store as application data.
  • You are in a maintenance or legacy-stabilization posture, not greenfield development, and the existing installation already works.
  • Scope is small and internal: a handful of scheduled commands, low concurrency, no strict delivery guarantees, no multi-tenant isolation requirements.

Look elsewhere — decisively — when:

  • The stack is Laravel (any version). Use the native queue system: database/Redis/SQS drivers with Horizon for Redis supervision and metrics, Artisan commands dispatched as jobs, and schedule:run plus the scheduler for cron semantics. You get retries, backoff, failed-job tables, and a UI for free.
  • The stack is Symfony 3+ or 5+/6+. Use Symfony Messenger with a transport (Doctrine, Redis, AMQP) and messenger:consume under Supervisor or a managed runtime. JMSJobQueueBundle and this adapter target a Symfony generation that is end-of-life.
  • You need real queue guarantees: at-least-once delivery, visibility timeouts, dead-letter handling, rate limiting, idempotency keys, or horizontal worker scaling. A console-command scheduler is not a message broker.
  • You need observability: metrics, tracing, alerting on job duration and failure rate, per-tenant dashboards. Nothing here provides that.
  • Dependency hygiene is a requirement. 3 stars, 0 dependents, readme-level maturity, and a dev-master install instruction with no tagged release are all disqualifying signals for anything customer-facing. There is no apparent maintainer activity, no test signal, and no security response path.
  • You need a vendor or support contract. There is no commercial backing.

How to Pitch It (Stakeholders)

For executives (one paragraph): We evaluated eo/job-queue-bundle for scheduled background work and are recommending against adoption. It is a small adapter that stores background-job records in MongoDB for an older Symfony 2 framework; it has effectively no community adoption (3 stars, zero dependent projects), no released versions, and ties us to a framework generation that no longer receives security updates. The business capability it represents — reliable scheduled jobs with run history — is real and worth building, but we should deliver it on a maintained foundation (Laravel's queue and scheduler stack for our application, or Symfony Messenger if the platform is Symfony). Adopting this package would create maintenance and security exposure disproportionate to the modest amount of code it saves.

For engineering (the practical brief): Treat this as a pattern reference, not a dependency. It is the MongoDB ODM persistence driver for JMSJobQueueBundle; the actual scheduling logic lives upstream in JMS. The integration surface is three steps — Composer require, bundle registration in AppKernel, and swapping the console Application class — plus optional config to override the job entity class. That tells you the design: console commands are wrapped as job records, persisted, and replayed by a worker. If we need equivalent behavior, implement it natively: Laravel ShouldQueue jobs dispatched onto Redis with Horizon, schedule:run driven by cron or a container scheduler, a failed_jobs table for triage, and structured logs plus metrics per job class. Estimated effort is comparable to integrating and validating this bundle, with none of the framework-lock or abandonment risk. If someone is evaluating this because they found it while searching package registries, close the ticket — it is a framework mismatch, not a candidate.

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