PHPackages                             stackkit/laravel-google-cloud-tasks-queue - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. stackkit/laravel-google-cloud-tasks-queue

ActiveLibrary[Queues &amp; Workers](/categories/queues)

stackkit/laravel-google-cloud-tasks-queue
=========================================

Google Cloud Tasks queue driver for Laravel

v5.2.0(2mo ago)84570.1k↑16.3%45[3 PRs](https://github.com/stackkit/laravel-google-cloud-tasks-queue/pulls)MITPHPPHP ^8.1CI passing

Since Jun 17Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/stackkit/laravel-google-cloud-tasks-queue)[ Packagist](https://packagist.org/packages/stackkit/laravel-google-cloud-tasks-queue)[ GitHub Sponsors](https://github.com/marickvantuil)[ RSS](/packages/stackkit-laravel-google-cloud-tasks-queue/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (12)Versions (79)Used By (0)

Cloud Tasks Queue Driver for Laravel
====================================

[](#cloud-tasks-queue-driver-for-laravel)

[![Run tests](https://github.com/stackkit/laravel-google-cloud-tasks-queue/actions/workflows/run-tests.yml/badge.svg)](https://github.com/stackkit/laravel-google-cloud-tasks-queue/actions/workflows/run-tests.yml)
[![Latest Stable Version](https://camo.githubusercontent.com/3e0ac959c6a79932804773f9a7aaaab8d90bba50d2ffd0211fe754f0ac86dbfe/68747470733a2f2f706f7365722e707567782e6f72672f737461636b6b69742f6c61726176656c2d676f6f676c652d636c6f75642d7461736b732d71756575652f762f737461626c652e737667)](https://packagist.org/packages/stackkit/laravel-google-cloud-tasks-queue)
[![Downloads](https://camo.githubusercontent.com/d597f6becd2723ff25c273c5c66922cf11faf9cbd826085526dfeeefe85b8b53/68747470733a2f2f706f7365722e707567782e6f72672f737461636b6b69742f6c61726176656c2d676f6f676c652d636c6f75642d7461736b732d71756575652f646f776e6c6f6164732e737667)](https://packagist.org/packages/stackkit/laravel-google-cloud-tasks-queue)

This package allows you to use Google Cloud Tasks as the queue driver in your Laravel application.

Companion packages: [Cloud Scheduler](https://github.com/stackkit/laravel-google-cloud-scheduler), [Cloud Logging](https://github.com/marickvantuil/laravel-google-cloud-logging)

[![Image](https://private-user-images.githubusercontent.com/647007/420663387-d9af0938-43b7-407b-8791-83419420a62b.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzM3MzIxNTAsIm5iZiI6MTc3MzczMTg1MCwicGF0aCI6Ii82NDcwMDcvNDIwNjYzMzg3LWQ5YWYwOTM4LTQzYjctNDA3Yi04NzkxLTgzNDE5NDIwYTYyYi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzE3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMxN1QwNzE3MzBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hZGYwMmIzMjQ5NDhmY2IyZGQ1ZmI3YmY2YzRhZjg0M2NkMzViMjUxYjFmNDNiOWU5MTliMWM5ZDZlMmI4YTIyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.v9PMpXA8jS34vjf0lMhmr863DD3EdnvDDlS-CiOdASk)](https://private-user-images.githubusercontent.com/647007/420663387-d9af0938-43b7-407b-8791-83419420a62b.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzM3MzIxNTAsIm5iZiI6MTc3MzczMTg1MCwicGF0aCI6Ii82NDcwMDcvNDIwNjYzMzg3LWQ5YWYwOTM4LTQzYjctNDA3Yi04NzkxLTgzNDE5NDIwYTYyYi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzE3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMxN1QwNzE3MzBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hZGYwMmIzMjQ5NDhmY2IyZGQ1ZmI3YmY2YzRhZjg0M2NkMzViMjUxYjFmNDNiOWU5MTliMWM5ZDZlMmI4YTIyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.v9PMpXA8jS34vjf0lMhmr863DD3EdnvDDlS-CiOdASk)

### Requirements

[](#requirements)

This package requires Laravel 11 or 12.

### Installation

[](#installation)

Require the package via Composer:

```
composer require stackkit/laravel-google-cloud-tasks-queue
```

Add a new queue connection to `config/queue.php`:

```
'cloudtasks' => [
  'driver' => 'cloudtasks',
  'project' => env('CLOUD_TASKS_PROJECT', ''),
  'location' => env('CLOUD_TASKS_LOCATION', ''),
  'queue' => env('CLOUD_TASKS_QUEUE', 'default'),

  // Required when using App Engine
  'app_engine'            => env('APP_ENGINE_TASK', false),
  'app_engine_service'    => env('APP_ENGINE_SERVICE', ''),

  // Required when not using App Engine
  'handler'               => env('CLOUD_TASKS_HANDLER', ''),
  'service_account_email' => env('CLOUD_TASKS_SERVICE_EMAIL', ''),

  'backoff' => 0,
  'after_commit' => false,
  // Enable this if you want to set a non-default Google Cloud Tasks dispatch timeout
  //'dispatch_deadline' => 1800, // in seconds
],
```

Set the appropriate environment variables:

```
QUEUE_CONNECTION=cloudtasks
```

If you're using Cloud Run:

```
CLOUD_TASKS_PROJECT=my-project
CLOUD_TASKS_LOCATION=europe-west6
CLOUD_TASKS_QUEUE=barbequeue
CLOUD_TASKS_SERVICE_EMAIL=my-service-account@appspot.gserviceaccount.com
# Optional (when using a separate task handler):
CLOUD_TASKS_SERVICE_HANDLER=
```

If you're using App Engine:

```
CLOUD_TASKS_PROJECT=my-project
CLOUD_TASKS_LOCATION=europe-west6
CLOUD_TASKS_QUEUE=barbequeue
APP_ENGINE_TASK=true
APP_ENGINE_SERVICE=my-service
```

Refer to the table below for descriptions of each value:

Environment VariableDescriptionExample`CLOUD_TASKS_PROJECT`The project your queue belongs to.`my-project``CLOUD_TASKS_LOCATION`The region where the project is hosted.`europe-west6``CLOUD_TASKS_QUEUE`The default queue to which a job will be added.`emails`**App Engine**`APP_ENGINE_TASK` (optional)Set to true to use an App Engine task (otherwise an HTTP task will be used). Defaults to false.`true``APP_ENGINE_SERVICE` (optional)The App Engine service that will handle the task (only if using App Engine tasks).`api`**Non-App Engine Apps**`CLOUD_TASKS_SERVICE_EMAIL` (optional)The service account's email address. It must have the required roles (see below).`my-service-account@appspot.gserviceaccount.com``CLOUD_TASKS_HANDLER` (optional)The URL that Cloud Tasks will call to process a job. Should point to your Laravel app. Defaults to the URL that dispatched the job.`https://.com`---

Optionally, you may publish the config file:

```
php artisan vendor:publish --tag=cloud-tasks
```

If you're using separate services for dispatching and handling tasks, and your app should only dispatch jobs (not handle them), you may disable the task handler in `config/cloud-tasks.php`:

```
'disable_task_handler' => env('CLOUD_TASKS_DISABLE_TASK_HANDLER', false),
```

### Cloud Run Jobs

[](#cloud-run-jobs)

If you want jobs to be processed by Cloud Run Jobs instead of HTTP endpoints, you can configure the queue to trigger Cloud Run Job executions.

#### Why Cloud Run Jobs?

[](#why-cloud-run-jobs)

Cloud Run Jobs are ideal for long-running batch processing that exceeds Cloud Tasks HTTP timeout limits.

Cloud Run Jobs can run for up to 7 days.

**Tip**: Use seperate queue connections with different targets, for low latency jobs, use HTTP targets, for longer running batch jobs use Cloud Run Jobs.

#### Setup

[](#setup)

1. **Create a Cloud Run Job** with your Laravel application container, configured to run:

```
php artisan cloud-tasks:work-job
```

The command reads job data from environment variables passed to the Job by Cloud Run.

2. **Configure your queue connection**:

```
'cloudtasks' => [
    'driver' => 'cloudtasks',
    'project' => env('CLOUD_TASKS_PROJECT'),
    'location' => env('CLOUD_TASKS_LOCATION'),
    'queue' => env('CLOUD_TASKS_QUEUE', 'default'),

    // Cloud Run Job configuration
    'cloud_run_job' => env('CLOUD_TASKS_USE_CLOUD_RUN_JOB', false),
    'cloud_run_job_name' => env('CLOUD_RUN_JOB_NAME'),
    'cloud_run_job_region' => env('CLOUD_RUN_JOB_REGION'), // defaults to location
    'service_account_email' => env('CLOUD_TASKS_SERVICE_EMAIL'),

    // Optional: Store large payloads (>10KB) in filesystem
    'payload_disk' => env('CLOUD_TASKS_PAYLOAD_DISK'), // Laravel disk name
    'payload_prefix' => env('CLOUD_TASKS_PAYLOAD_PREFIX', 'cloud-tasks-payloads'),
    'payload_threshold' => env('CLOUD_TASKS_PAYLOAD_THRESHOLD', 10240), // bytes
],
```

> **Note**: The command reads `CLOUD_TASKS_PAYLOAD`, `CLOUD_TASKS_TASK_NAME`, and `CLOUD_TASKS_PAYLOAD_PATH` directly from environment variables at runtime using `getenv()`. These are set automatically by Cloud Tasks via container overrides.

3. **Set environment variables**:

```
CLOUD_TASKS_USE_CLOUD_RUN_JOB=true
CLOUD_RUN_JOB_NAME=my-queue-worker-job
CLOUD_RUN_JOB_REGION=europe-west1
```

#### Large Payload Storage

[](#large-payload-storage)

For jobs with payloads exceeding environment variable limits (32KB limit enforced by Cloud Run), configure a Laravel filesystem disk:

```
CLOUD_TASKS_PAYLOAD_DISK=gcs
CLOUD_TASKS_PAYLOAD_PREFIX=cloud-tasks-payloads
CLOUD_TASKS_PAYLOAD_THRESHOLD=30000
```

When the payload exceeds the threshold, it's stored in the disk and `CLOUD_TASKS_PAYLOAD_PATH` is used instead.

> **Note**: The payloads will not be cleared up automatically, you can define lifecycle rules for the GCS bucket to delete old payloads.

#### How It Works

[](#how-it-works)

When you dispatch a job with Cloud Run Job target enabled:

1. Package creates a Cloud Task with HTTP target pointing to Cloud Run Jobs API
2. Cloud Tasks calls `run.googleapis.com/v2/.../jobs/{job}:run`
3. Cloud Run Jobs starts a new execution with environment variables set via container overrides:
    - `CLOUD_TASKS_PAYLOAD` - Base64-encoded job payload
    - `CLOUD_TASKS_TASK_NAME` - The task name
4. The container runs `php artisan cloud-tasks:work-job` which reads the env vars and processes the job

All Laravel queue functionality is retained:

- Job retries and max attempts
- Failed job handling
- Job timeouts
- Encrypted jobs
- Queue events

#### Required IAM Permissions

[](#required-iam-permissions)

Cloud Run Jobs requires specific IAM permissions. Set these variables first:

```
export PROJECT_ID="your-project-id"
export SA_EMAIL="your-service-account@your-project-id.iam.gserviceaccount.com"
export TASKS_AGENT="service-{PROJECT_NUMBER}@gcp-sa-cloudtasks.iam.gserviceaccount.com"
```

> **Note**: Find your Cloud Tasks service agent email in the IAM console under "Include Google-provided role grants". **Note**: Project ID and Project Number are different. Project ID is the name of your project, Project Number is the numeric ID of your project.

**Project-Level Permissions:**

```
# Allow enqueuing tasks (required by PHP app running as $SA_EMAIL)
gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member="serviceAccount:$SA_EMAIL" \
    --role="roles/cloudtasks.enqueuer"

# Allow executing jobs with overrides (required for container overrides)
gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member="serviceAccount:$SA_EMAIL" \
    --role="roles/run.jobsExecutorWithOverrides"

# Allow invoking Cloud Run Services (if also using Cloud Run Services as HTTP targets)
gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member="serviceAccount:$SA_EMAIL" \
    --role="roles/run.invoker"
```

**Note**: To restrict access to specific Cloud Run instances, use IAM conditions to limit access to specific Cloud Run Jobs / services.

**Service Account Permissions:**

```
# Allow the SA to act as itself (required for task creation and execution)
gcloud iam service-accounts add-iam-policy-binding $SA_EMAIL \
    --member="serviceAccount:$SA_EMAIL" \
    --role="roles/iam.serviceAccountUser"

# Allow Cloud Tasks to act as the SA (required for OAuth token generation)
gcloud iam service-accounts add-iam-policy-binding $SA_EMAIL \
    --member="serviceAccount:$TASKS_AGENT" \
    --role="roles/iam.serviceAccountUser"
```

PermissionRequired ByPurpose`cloudtasks.enqueuer`PHP AppAdd tasks to the queue`cloudtasks.viewer`Cloud Run JobList queues/tasks (optional)`run.jobsExecutorWithOverrides`Cloud TaskExecute jobs with container overrides`run.invoker`Other WorkloadsInvoke Cloud Run Services (if using HTTP targets)`iam.serviceAccountUser` (on SA)BothAllow SA to create tasks as itself`iam.serviceAccountUser` (Tasks Agent)Google InfrastructureGenerate OAuth tokens for Cloud Run### How-To

[](#how-to)

#### Pass headers to a task

[](#pass-headers-to-a-task)

You can pass headers to a task using the `setTaskHeadersUsing` method on the `CloudTasksQueue` class:

```
use Stackkit\LaravelGoogleCloudTasksQueue\CloudTasksQueue;

CloudTasksQueue::setTaskHeadersUsing(static fn() => [
  'X-My-Header' => 'My-Value',
]);
```

You can also access the payload being dispatched:

```
CloudTasksQueue::setTaskHeadersUsing(static fn(array $payload) => [
  'X-My-Header' => $payload['displayName'],
]);
```

#### Configure the task handler URL

[](#configure-the-task-handler-url)

Set the handler URL for a task using the `configureHandlerUrlUsing` method:

```
CloudTasksQueue::configureHandlerUrlUsing(static fn() => 'https://example.com/my-url');
```

Or access the job being dispatched:

```
CloudTasksQueue::configureHandlerUrlUsing(static fn(MyJob $job) => 'https://example.com/my-url/' . $job->something());
```

#### Configure worker options

[](#configure-worker-options)

Customize worker options using the `configureWorkerOptionsUsing` method:

```
use Stackkit\LaravelGoogleCloudTasksQueue\IncomingTask;

CloudTasksQueue::configureWorkerOptionsUsing(function (IncomingTask $task) {
    $queueTries = [
        'high' => 5,
        'low' => 1,
    ];

    return new WorkerOptions(maxTries: $queueTries[$task->queue()] ?? 1);
});
```

#### Use a custom credentials file

[](#use-a-custom-credentials-file)

Edit the `client_options` key in `config/cloud-tasks.php`:

```
'client_options' => [
    'credentials' => '/path/to/credentials.json',
]
```

#### Modify CloudTasksClient options

[](#modify-cloudtasksclient-options)

Edit the `client_options` key in `config/cloud-tasks.php`:

```
'client_options' => [
    // Custom options here
]
```

### How it works &amp; differences

[](#how-it-works--differences)

Using Cloud Tasks as a Laravel queue driver is fundamentally different from other drivers like Redis.

With Redis or similar drivers, a worker listens for jobs via `queue:work` or `queue:listen`.
With Cloud Tasks, jobs are scheduled and dispatched via HTTP requests to your app.
There’s no need to run `queue:work` or `queue:listen`.

### Good to Know

[](#good-to-know)

Cloud Tasks has its own retry configuration options like:

- Maximum number of attempts
- Retry duration
- Min/max backoff
- Max doublings

These are ignored by this package. Instead, you can configure retry behavior directly in Laravel.

### Authentication

[](#authentication)

If you're not using your master service account (which has all abilities), assign the following roles to your service account to make it working:

1. App Engine Viewer
2. Cloud Tasks Enqueuer
3. Cloud Tasks Viewer
4. Cloud Tasks Task Deleter
5. Service Account User

### Upgrading

[](#upgrading)

See [UPGRADING.MD](UPGRADING.md) for instructions on updating versions.

### Troubleshooting

[](#troubleshooting)

#### `HttpRequest.url` must start with `https://`

[](#httprequesturl-must-start-with-https)

This can occur when your application runs behind a reverse proxy.
To resolve it, add your app’s domain to Laravel’s [trusted proxies](https://laravel.com/docs/11.x/requests#trusting-all-proxies).
You may need to use the wildcard `*`.

#### `Maximum call stack size (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion?`

[](#maximum-call-stack-size-zendmax_allowed_stack_size---zendreserved_stack_size-reached-infinite-recursion)

This seems to be a bug in PHP 8.3 and `googleapis/gax-php`.
See [this issue](https://github.com/googleapis/gax-php/issues/584) for details.

A possible workaround is to disable the PHP 8.3 stack limit in `php.ini`:

```
zend.max_allowed_stack_size=-1
```

### Contributing

[](#contributing)

You can use the services defined in `docker-compose.yml` to run the package locally.

Inside the container:

1. Run `composer install`
2. Set up the environment: `cp .env.example .env`

Some tests use the Cloud Tasks API and require a project and credentials.
Set the appropriate variables in your `.env`.

###  Health Score

65

—

FairBetter than 99% of packages

Maintenance86

Actively maintained with recent releases

Popularity54

Moderate usage in the ecosystem

Community25

Small or concentrated contributor base

Maturity79

Established project with proven stability

 Bus Factor1

Top contributor holds 84.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~28 days

Total

75

Last Release

71d ago

Major Versions

1.x-dev → v2.0.02020-10-11

2.x-dev → v3.0.0-beta12022-03-06

3.x-dev → v4.0.0-beta.12024-03-31

v4.3.1 → v5.0.0-beta.12025-03-06

### Community

Maintainers

![](https://www.gravatar.com/avatar/471f036a6233bb3c515fbfb65067e4ca56b301804d27f0f6ed55a0cd7820faf5?d=identicon)[stackkit](/maintainers/stackkit)

---

Top Contributors

[![marickvantuil](https://avatars.githubusercontent.com/u/647007?v=4)](https://github.com/marickvantuil "marickvantuil (343 commits)")[![Tarpsvo](https://avatars.githubusercontent.com/u/2018660?v=4)](https://github.com/Tarpsvo "Tarpsvo (11 commits)")[![aaajeetee](https://avatars.githubusercontent.com/u/9864953?v=4)](https://github.com/aaajeetee "aaajeetee (10 commits)")[![robertpcontreras-ts](https://avatars.githubusercontent.com/u/79461629?v=4)](https://github.com/robertpcontreras-ts "robertpcontreras-ts (10 commits)")[![miccehedin](https://avatars.githubusercontent.com/u/7142622?v=4)](https://github.com/miccehedin "miccehedin (8 commits)")[![ted-selig-five9](https://avatars.githubusercontent.com/u/149825586?v=4)](https://github.com/ted-selig-five9 "ted-selig-five9 (3 commits)")[![jobvink](https://avatars.githubusercontent.com/u/19264233?v=4)](https://github.com/jobvink "jobvink (3 commits)")[![gogl92](https://avatars.githubusercontent.com/u/1505641?v=4)](https://github.com/gogl92 "gogl92 (2 commits)")[![andrew-broberg-five9](https://avatars.githubusercontent.com/u/152926742?v=4)](https://github.com/andrew-broberg-five9 "andrew-broberg-five9 (2 commits)")[![Plytas](https://avatars.githubusercontent.com/u/17316322?v=4)](https://github.com/Plytas "Plytas (2 commits)")[![atrauzzi](https://avatars.githubusercontent.com/u/115199?v=4)](https://github.com/atrauzzi "atrauzzi (2 commits)")[![emilmilow](https://avatars.githubusercontent.com/u/8074946?v=4)](https://github.com/emilmilow "emilmilow (1 commits)")[![dshafik](https://avatars.githubusercontent.com/u/58074?v=4)](https://github.com/dshafik "dshafik (1 commits)")[![gabfr](https://avatars.githubusercontent.com/u/1237163?v=4)](https://github.com/gabfr "gabfr (1 commits)")[![illambo](https://avatars.githubusercontent.com/u/1899805?v=4)](https://github.com/illambo "illambo (1 commits)")[![mordy](https://avatars.githubusercontent.com/u/546345?v=4)](https://github.com/mordy "mordy (1 commits)")[![muath-ye](https://avatars.githubusercontent.com/u/34031333?v=4)](https://github.com/muath-ye "muath-ye (1 commits)")[![wildangunawan](https://avatars.githubusercontent.com/u/35158077?v=4)](https://github.com/wildangunawan "wildangunawan (1 commits)")[![tommerrett](https://avatars.githubusercontent.com/u/50173333?v=4)](https://github.com/tommerrett "tommerrett (1 commits)")

---

Tags

google-cloudgoogle-cloud-taskslaravellaravel-queuephplaravelcloudgooglequeuerunqueuescloudtasks

###  Code Quality

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/stackkit-laravel-google-cloud-tasks-queue/health.svg)

```
[![Health](https://phpackages.com/badges/stackkit-laravel-google-cloud-tasks-queue/health.svg)](https://phpackages.com/packages/stackkit-laravel-google-cloud-tasks-queue)
```

###  Alternatives

[kainxspirits/laravel-pubsub-queue

Queue driver for Google Cloud Pub/Sub.

48381.1k3](/packages/kainxspirits-laravel-pubsub-queue)[renoki-co/horizon-exporter

Export Laravel Horizon metrics using this Prometheus exporter.

24152.7k](/packages/renoki-co-horizon-exporter)[webparking/laravel-queue-ensurer

This composer package provides a Laravel queue ensurer.

6416.1k](/packages/webparking-laravel-queue-ensurer)[lokielse/laravel-mns

Aliyun MNS Queue Driver For Laravel

2614.9k](/packages/lokielse-laravel-mns)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
