laravel-queues

Agent Workflow (MANDATORY)

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "laravel-queues" with this command: npx skills add fusengine/agents/fusengine-agents-laravel-queues

Laravel Queues

Agent Workflow (MANDATORY)

Before ANY implementation, use TeamCreate to spawn 3 agents:

  • fuse-ai-pilot:explore-codebase - Analyze existing job patterns

  • fuse-ai-pilot:research-expert - Verify Queue docs via Context7

  • 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

  • Use ShouldQueue for async processing

  • Set tries and backoff for resilience

  • Implement failed() method for error handling

  • Use database transactions carefully with jobs

  • Monitor with Horizon in production

Reference Guide

Concepts

Topic Reference When to Consult

Jobs jobs.md Creating job classes

Dispatching dispatching.md Sending jobs to queues

Workers workers.md Running queue workers

Batching batching.md Grouping jobs

Chaining chaining.md Sequential jobs

Middleware middleware.md Rate limiting, dedup

Failed Jobs failed-jobs.md Error handling

Horizon horizon.md Monitoring dashboard

Testing testing.md Job testing

Troubleshooting troubleshooting.md Common issues

Templates

Template When to Use

QueueableJob.php.md Standard job with retries

BatchJob.php.md Batchable job

ChainedJobs.php.md Job chain implementation

JobMiddleware.php.md Custom middleware

JobTest.php.md Testing jobs

Quick Reference

Basic Job

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

// 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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

laravel-livewire

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

laravel-blade

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

laravel-architecture

No summary provided by upstream source.

Repository SourceNeeds Review