本文へ移動
cccskills
無料GitHub で公開

laravel-horizon

Use when working with Laravel queues in production — Horizon dashboard, worker supervision, job metrics, balancing strategies — even when the user just says 'my jobs are piling up'.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md4.9 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

laravel-horizon

When to use

Use this skill for anything related to Laravel Horizon:

  • Queue worker configuration and supervision
  • Horizon dashboard setup and access control
  • Job metrics, throughput, and failure monitoring
  • Balancing strategies and scaling workers
  • Production tuning and deployment

For writing queue jobs themselves, see jobs-events.

Procedure: Configure Horizon

  1. Inspect current queue setup — Read config/queue.php, config/horizon.php (if present), and composer.json to identify the current driver, supervisors, and queues in use.
  2. Pick environments and balance strategy — Decide per-env maxProcesses, balance, tries, timeout based on workload; review the config block below.
  3. Apply configuration — Edit config/horizon.php, register supervisors and queue priority.
  4. Verify — Run php artisan horizon locally, hit /horizon dashboard, confirm jobs flow and metrics appear.

config/horizon.php

'environments' => [
    'production' => [
        'supervisor-1' => [
            'maxProcesses' => 10,
            'balanceMaxShift' => 1,
            'balanceCooldown' => 3,
            'connection' => 'redis',
            'queue' => ['default', 'high', 'low'],
            'balance' => 'auto',  // auto, simple, or false
            'tries' => 3,
            'timeout' => 60,
            'maxTime' => 3600,
            'maxJobs' => 1000,
            'memory' => 128,
        ],
    ],
    'local' => [
        'supervisor-1' => [
            'maxProcesses' => 3,
            'connection' => 'redis',
            'queue' => ['default', 'high', 'low'],
            'balance' => 'auto',
            'tries' => 3,
            'timeout' => 60,
        ],
    ],
],

Queue priority

// Higher priority queues are listed first
'queue' => ['high', 'default', 'low'],

Running Horizon

# Start Horizon (foreground)
php artisan horizon

# Pause / Continue
php artisan horizon:pause
php artisan horizon:continue

# Terminate gracefully (for deployments)
php artisan horizon:terminate

# Check status
php artisan horizon:status

Deployment

Always terminate and restart Horizon after deploying new code:

php artisan horizon:terminate
# Supervisor will auto-restart Horizon

Supervisor config (production)

[program:horizon]
process_name=%(program_name)s
command=php /path/to/artisan horizon
autostart=true
autorestart=true
user=www-data
redirect_stderr=true
stdout_logfile=/var/log/horizon.log
stopwaitsecs=3600

Dashboard access

// HorizonServiceProvider
protected function gate(): void
{
    Gate::define('viewHorizon', function (User $user): bool {
        return $user->isSuperuser();
    });
}

Balancing strategies

StrategyBehavior
autoDistributes workers based on queue workload (recommended)
simpleRound-robin across queues
falseFixed worker count per queue

Metrics and monitoring

  • Throughput — jobs processed per minute per queue
  • Runtime — average job execution time
  • Wait time — time jobs spend waiting in queue
  • Failed jobs — track and retry from dashboard
  • Tags — auto-tagged by Eloquent models, custom tags via tags() method
// Custom tags on a job
public function tags(): array
{
    return ['customer:' . $this->customer->getId(), 'report'];
}

Core rules

  • Always use Supervisor in production — Horizon is a long-running process.
  • Terminate on deploy — horizon:terminate ensures workers pick up new code.
  • Use auto balancing — it adapts to workload automatically.
  • Set maxTime — prevents workers from running forever (memory leaks).
  • Set maxJobs — recycles workers after N jobs to prevent memory bloat.
  • Tag jobs — makes debugging and filtering in the dashboard much easier.

Output format

  1. Updated Horizon configuration with supervisor and queue settings
  2. Environment-specific balancing strategy rationale

Auto-trigger keywords

  • Horizon
  • queue worker
  • queue dashboard
  • job monitoring
  • supervisor
  • queue balancing

Gotcha

  • Horizon config changes require php artisan horizon:terminate and restart — they don't hot-reload.
  • Don't set maxProcesses too high — each process holds a DB connection. Monitor your connection pool.
  • The model forgets that Horizon only works with Redis queues — not database or SQS.

Do NOT

  • Do NOT run Horizon without Supervisor/systemd in production.
  • Do NOT expose the Horizon dashboard without access control.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.

日本語の概要は準備中です。原文の説明を表示しています。

event4u-app/agent-config112026年10月13日 更新

Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.

日本語の概要は準備中です。原文の説明を表示しています。

event4u-app/agent-config112026年10月13日 更新

Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.

日本語の概要は準備中です。原文の説明を表示しています。

event4u-app/agent-config112026年10月13日 更新

Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.

日本語の概要は準備中です。原文の説明を表示しています。

event4u-app/agent-config112026年10月13日 更新

Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.

日本語の概要は準備中です。原文の説明を表示しています。

event4u-app/agent-config112026年10月13日 更新

Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.

日本語の概要は準備中です。原文の説明を表示しています。

event4u-app/agent-config112026年10月13日 更新

event4u-app のスキルをすべて見る

このスキルの問題を報告する