Download the PHP package gwhitdev/laravel-queue-doctor without Composer

On this page you can find all versions of the php package gwhitdev/laravel-queue-doctor. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-queue-doctor

Laravel Queue Doctor

A single Artisan command — php artisan queue:doctor — that catches the three queue/infra failure modes Laravel itself stays quiet about:

  1. Worker/connection mismatch — jobs dispatch to one connection (say redis) but the only running worker drains another (say database). Jobs pile up forever and nothing errors. They just never run.
  2. Stalled backlog — a connection has old pending jobs and no worker is draining them (dead worker, wrong supervisor config, scaled-to-zero).
  3. Web-tier store outage — your cache or session backend (often Redis) is unreachable. This is the nastiest one: it 500s every single request through StartSession/the cache repository, long before any queue symptom appears — and a queue health check that only looks at the queue is blind to it.

Why this exists

This was extracted from a production Laravel app after a multi-hour outage with a frustratingly simple root cause: jobs were dispatched to Redis, but the worker was started as queue:work database. No exception, no failed job, no log line — work simply vanished into a queue nobody was draining. A second incident came from the other direction: Redis (backing both session and cache) dropped its connection, and StartSession turned every route into a 500 while the queue looked perfectly healthy.

queue:doctor is the check we wished we'd had: it asserts the connection you dispatch to is the one a worker is actually draining, and it round-trips the cache/session backends every request depends on.

Installation

The service provider is auto-discovered. No config or migration to publish.

Usage

Example output:

Options

Option Default Description
--max-age 3600 Age in seconds above which a backlog on the default connection is treated as a hard failure rather than a transient warning.

Exit codes

queue:doctor exits non-zero on a mismatch, a stalled backlog, or an unreachable web-tier store — so it drops straight into CI, a deploy gate, or a cron-driven healthcheck:

How the worker detection works

Worker discovery parses the process list (ps -eo args) for queue:work/queue:listen and reads the connection argument. It is best-effort: in environments where the process list isn't visible (some containers, restricted hosts) it reports "could not inspect process list" and skips the mismatch verdict rather than producing a false alarm. The backlog and store checks still run.

Failing over a downed store

When queue:doctor reports WEB-TIER STORE DOWN, the fastest recovery that keeps the app serving is to move off the broken backend until it recovers:

Testing

License

MIT. See LICENSE.


All versions of laravel-queue-doctor with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
illuminate/console Version ^11.0 || ^12.0 || ^13.0
illuminate/support Version ^11.0 || ^12.0 || ^13.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package gwhitdev/laravel-queue-doctor contains the following files

Loading the files please wait ...