Skip to content
Back to skills

Laravel Queues

ASecurity

Implement background jobs with queues, workers, batches, chains, middleware, and failure handling. Use when processing async tasks or handling long-running operations.

  • 666 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added February 9, 2026
developmentphpawstestingdatabase

Works with

  • mcp

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill laravel-queues --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Laravel Queues?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Laravel Queues
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-laravel-queues/badge)](https://www.skillsdirectory.com/skills/majiayu000-laravel-queues)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: laravel-queues
description: Implement background jobs with queues, workers, batches, chains, middleware, and failure handling. Use when processing async tasks or handling long-running operations.
versions:
  laravel: "12.46"
  horizon: "5.43"
  php: "8.5"
user-invocable: false
references: references/jobs.md, references/dispatching.md, references/workers.md, references/batching.md, references/chaining.md, references/middleware.md, references/failed-jobs.md, references/horizon.md, references/testing.md, references/troubleshooting.md, references/templates/QueueableJob.php.md, references/templates/BatchJob.php.md, references/templates/ChainedJobs.php.md, references/templates/JobMiddleware.php.md, references/templates/JobTest.php.md
related-skills: laravel-architecture, laravel-eloquent
---

# Laravel Queues

## Agent Workflow (MANDATORY)

Before ANY implementation, launch in parallel:

1. **fuse-ai-pilot:explore-codebase** - Analyze existing job patterns
2. **fuse-ai-pilot:research-expert** - Verify Queue docs via Context7
3. **mcp__context7__query-docs** - Check job and worker patterns

After implementation, run **fuse-ai-pilot:sniper** for validation.

---

## Overview

| Component | Purpose |
|-----------|---------|
| **Jobs** | Background tasks with retries, timeouts |
| **Workers** | Process jobs from queues |
| **Batches** | Group jobs with progress tracking |
| **Chains** | Sequential job execution |
| **Middleware** | Rate limiting, deduplication |
| **Horizon** | Redis queue monitoring dashboard |

---

## Decision Guide: Queue Driver

```
Which driver?
├── Development → sync (instant execution)
├── Small app → database (simple, no Redis)
├── Production → redis (fast, Horizon support)
├── AWS → sqs (managed, scalable)
└── High volume → redis + Horizon (monitoring)
```

---

## Decision Guide: Job Design

```
Job type?
├── Simple async → Standard Job
├── Group processing → Batch (progress, cancel)
├── Sequential steps → Chain (A → B → C)
├── Rate limited → Middleware + RateLimiter
├── Unique execution → UniqueJob / WithoutOverlapping
└── Long running → Timeout + Retry settings
```

---

## Critical Rules

1. **Use ShouldQueue** for async processing
2. **Set tries and backoff** for resilience
3. **Implement failed()** method for error handling
4. **Use database transactions** carefully with jobs
5. **Monitor with Horizon** in production

---

## Reference Guide

### Concepts

| Topic | Reference | When to Consult |
|-------|-----------|-----------------|
| **Jobs** | [jobs.md](references/jobs.md) | Creating job classes |
| **Dispatching** | [dispatching.md](references/dispatching.md) | Sending jobs to queues |
| **Workers** | [workers.md](references/workers.md) | Running queue workers |
| **Batching** | [batching.md](references/batching.md) | Grouping jobs |
| **Chaining** | [chaining.md](references/chaining.md) | Sequential jobs |
| **Middleware** | [middleware.md](references/middleware.md) | Rate limiting, dedup |
| **Failed Jobs** | [failed-jobs.md](references/failed-jobs.md) | Error handling |
| **Horizon** | [horizon.md](references/horizon.md) | Monitoring dashboard |
| **Testing** | [testing.md](references/testing.md) | Job testing |
| **Troubleshooting** | [troubleshooting.md](references/troubleshooting.md) | Common issues |

### Templates

| Template | When to Use |
|----------|-------------|
| [QueueableJob.php.md](references/templates/QueueableJob.php.md) | Standard job with retries |
| [BatchJob.php.md](references/templates/BatchJob.php.md) | Batchable job |
| [ChainedJobs.php.md](references/templates/ChainedJobs.php.md) | Job chain implementation |
| [JobMiddleware.php.md](references/templates/JobMiddleware.php.md) | Custom middleware |
| [JobTest.php.md](references/templates/JobTest.php.md) | Testing jobs |

---

## Quick Reference

### Basic Job

```php
final class ProcessOrder implements ShouldQueue
{
    use Queueable;

    public int $tries = 3;
    public int $backoff = 60;
    public int $timeout = 120;

    public function __construct(
        public readonly Order $order,
    ) {}

    public function handle(OrderService $service): void
    {
        $service->process($this->order);
    }

    public function failed(\Throwable $e): void
    {
        Log::error('Order failed', ['id' => $this->order->id]);
    }
}
```

### Dispatch

```php
// Immediate
ProcessOrder::dispatch($order);

// Delayed
ProcessOrder::dispatch($order)->delay(now()->addMinutes(5));

// On specific queue
ProcessOrder::dispatch($order)->onQueue('orders');
```

---

## Best Practices

### DO
- Use `final` for job classes
- Implement `failed()` method
- Set appropriate `timeout` values
- Use `Unique` for one-at-a-time jobs
- Monitor with Horizon in production

### DON'T
- Dispatch inside database transactions (use `afterCommit`)
- Store large objects in job properties
- Forget to handle failures
- Use sync driver in production

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.