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

Laravel Queue Worker Laravel Package

jeffersongoncalves/laravel-queue-worker

A lightweight Laravel package for running and managing queue workers without Supervisor. Start, stop, restart, and monitor workers through simple Artisan commands, making background job processing practical on shared hosting and minimal deployments.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Roadmap unblock — long-running work. The 60-second cap was a hard ceiling on anything dispatched through the hub; timeouts now reach the child process. Features previously shelved as "can't run through the hub" (exports, media processing, third-party syncs) can be re-scoped and re-estimated.
  • Dependency ownership, not transitive drift. The hub is coupled to laravel-queue-consumer installed in each environment. That is a fleet-wide supported-version matrix we now own; ^1.1 allowing 1.2.0 without requiring it means a stale composer.lock fails at runtime. Decide whether to pin, and add the consumer version to the compatibility contract.
  • Deploy gating. retry_after on the hub's queue connection must exceed the longest timeout any environment declares plus 60 seconds, or POST /api/jobs refuses those jobs. This belongs in environment-provisioning checklists and the deploy runbook, not just the README.
  • Support deflection. OutdatedEnvironmentConsumerException converts an opaque Symfony message into the environment slug, its path, and the exact composer require to run. That is self-serve onboarding for environment owners and fewer escalations to the platform team.
  • Contract tightening at submit time. timeout: 0, negative timeouts, and timeout+margin ≥ retry_after now return 422 instead of running with wrong semantics. Moving these failures left is good, but it is a visible API behavior change for any consumer currently submitting such payloads — decide whether to announce it as a breaking change to integrators.
  • Trustworthy failure attribution. Symfony kills the child first, so failed_jobs names the environment rather than pcntl_alarm killing the worker and orphaning the child. Per-environment reliability metrics and MTTR both improve.

When to Consider This Package

Adopt when you already run Laravel queues and need per-environment (per-tenant or per-deployment) isolation of execution behind a central submit API; you want long-running jobs out-of-process without hand-rolling Process orchestration and retry_after arithmetic; and you can push laravel-queue-consumer:^1.2 to every environment deliberately.

Look elsewhere or wait when:

  • You cannot coordinate a fleet-wide consumer upgrade. 1.3.0 requires ^1.2; a stale composer.lock keeps 1.1.x and every job fails with the --queue rejection.
  • Jobs are uniformly under 60 seconds and a single queue worker suffices — this adds a hop, a version matrix, and a config invariant for no gain.
  • You rely on timeout: 0 / unbounded payloads. These are now rejected, so those jobs need a redesign before upgrading.
  • You need a vendor with a support contract or LTS guarantee; this is a single-maintainer jeffersongoncalves/* stack, and the failure mode above is exactly the kind of cross-package coupling that implies.

How to Pitch It (Stakeholders)

Executives: 1.3.0 removes the hard 60-second ceiling that made the hub unusable for real workloads, unblocking roadmap items that were parked for lack of a runtime — no new infrastructure required. It also turns two classes of silent, expensive-to-diagnose failure into explicit, actionable errors, reducing platform-team triage time. The cost is a coordinated fleet upgrade of the queue consumer plus a retry_after audit before rollout.

Engineering: timeouts now propagate to the child Process; the hub job retains the timeout plus a 60-second margin so the child times out first and failed_jobs attributes the failure to the environment, instead of pcntl_alarm killing the worker and orphaning the child. Jobs queued before this version take the margin out of the child's share, since the outer payload is already in Redis and cannot be rewritten. New 422 validation rejects timeout: 0, negative timeouts, and any timeout+margin reaching retry_after (naming both numbers). OutdatedEnvironmentConsumerException matches stderr only — where the argument parser fails before the command runs — so job output quoting that text is not misclassified. Upgrade actions: every environment must require "jeffersongoncalves/laravel-queue-consumer": "^1.2" (an existing lock file will keep 1.1.x even under ^1.1), and retry_after must exceed the longest declared timeout plus 60 seconds before deploying.

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