Download the PHP package abdulmajeed-jamaan/laravel-queue-promoter without Composer

On this page you can find all versions of the php package abdulmajeed-jamaan/laravel-queue-promoter. 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-promoter

Queue Promoter

Enable true scale-to-zero for Laravel Redis queues.

Queue Promoter is a lightweight queue:work-style daemon that promotes due delayed and expired reserved jobs onto Laravel's Redis ready queue—allowing autoscalers like KEDA to wake workers even when they've scaled down to zero.

The Problem

Laravel's Redis queue only promotes due delayed and expired reserved jobs when a worker calls pop().

That works perfectly while at least one worker is running.

In scale-to-zero environments, however, all workers are intentionally stopped when the ready queue becomes empty.

That creates a deadlock:

  1. A delayed job becomes due (or a reserved job expires).
  2. No worker is running, so nothing calls pop().
  3. The ready queue stays empty.
  4. The autoscaler sees no work and keeps workers at zero.

The queue can never wake itself back up.

The Solution

Run a single queue:promote process.

Instead of executing jobs, it only:

Once jobs appear on the ready queue, the autoscaler starts your normal queue workers.

Queue Promoter never reserves or executes jobs.

It only makes queued work visible again.

[!NOTE] Queue Promoter is only needed for the Redis queue driver.

The database, sqs, and beanstalkd drivers determine whether jobs are due when retrieving them, so they have nothing to promote.

Why not just keep one worker running?

You certainly can—but that largely defeats the purpose of scaling to zero.

In many production deployments, different groups of queues are processed by separate worker deployments. Without Queue Promoter, each deployment needs at least one idle worker running to ensure delayed and expired jobs are promoted.

Queue Promoter replaces all of those idle workers with a single lightweight process that serves all configured queues, allowing every worker deployment to scale independently to zero.

No matter how many worker deployments you have, a single Queue Promoter instance can serve all configured queues.

Installation

The service provider is auto-discovered.

Usage

[!IMPORTANT] Like queue:work, Queue Promoter only processes the queues specified via --queue.

Make sure every queue that receives delayed jobs is included. A delayed job on an unlisted queue will never be promoted.

Run it under Supervisor, systemd, or Kubernetes. It supports graceful shutdown via SIGTERM and queue:restart.

Or run a single promotion pass from Laravel's scheduler:

How it works

Queue Promoter reuses Laravel's existing Redis queue implementation.

Each loop it:

  1. Migrates due delayed jobs.
  2. Retries expired reserved jobs.
  3. Stops before reserving the next job.

No jobs are reserved.

No jobs are executed.

It simply makes work available for your existing queue workers.

Testing

Tests run against a real Redis-compatible server (Redis or Valkey).

License

Queue Promoter is open-source software licensed under the MIT License.


All versions of laravel-queue-promoter with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
illuminate/console Version ^12.0
illuminate/contracts Version ^12.0
illuminate/queue Version ^12.0
illuminate/support Version ^12.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 abdulmajeed-jamaan/laravel-queue-promoter contains the following files

Loading the files please wait ...