laravel:queues-and-horizon
Queues and Horizon
Run workers safely, verify execution, and test job behavior.
Commands
# Start worker
sail artisan queue:work --queue=high,default --tries=3 --backoff=5 # or: php artisan queue:work --queue=high,default --tries=3 --backoff=5
# Horizon (if installed)
sail artisan horizon # or: php artisan horizon
# Failed jobs
sail artisan queue:failed # or: php artisan queue:failed
sail artisan queue:retry all # or: php artisan queue:retry all
Patterns
- Use named queues for prioritization; keep defaults sane
- Add actionable
Log::warning/::errorwith context in jobs - Idempotency: make jobs safe to retry
- Emit metrics where possible; observe in Horizon or your APM
Testing Jobs
- Use
Bus::fake()to assert dispatching in unit tests - Use integration tests to verify side-effects (DB/IO)
More from jpcaparas/superpowers-laravel
laravel:routes-best-practices
Keep routes clean and focused on mapping requests to controllers; avoid business logic, validation, or database operations in route files
89laravel:blade-components-and-layouts
Compose UIs with Blade components, slots, and layouts; keep templates pure and testable
89laravel:quality-checks
Unified quality gates for Laravel projects; Pint, static analysis (PHPStan/Psalm), Insights (optional), and JS linters; Sail and non-Sail pairs provided
80laravel:performance-caching
Use framework caches and value/query caching to reduce work; add tags, locks, and explicit invalidation strategies for correctness
77laravel:tdd-with-pest
Apply RED-GREEN-REFACTOR with Pest or PHPUnit; use factories, feature tests for HTTP, and parallel test runners; verify failures before implementation
76laravel:performance-eager-loading
Prevent N+1 queries by eager loading; enable lazy-loading protection in non-production; choose selective fields
74