Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Horizon Laravel Package

laravel/horizon

Laravel Horizon adds a polished dashboard and code-driven configuration for Laravel Redis queues. Monitor job throughput, runtime, failures, and worker status, with all queue worker settings kept in a single config file for easy version control.

View on GitHub
Deep Wiki
Context7

Laravel Horizon provides a polished dashboard and code-driven configuration for Laravel applications using Redis queues. It helps you monitor critical queue health signals—like throughput, runtime, and failures—so you can spot bottlenecks and keep background processing reliable.

All worker and supervisor settings live in a single, source-controlled configuration file, making it easy for teams to review, version, and deploy consistent queue behavior across environments.

  • Real-time dashboard for queue metrics and job activity
  • Track throughput, runtime, and failures at a glance
  • Centralized worker configuration in one config file
  • Designed specifically for Laravel + Redis queues
  • Supports team-friendly, code-first operations
Frequently asked questions about Horizon
Does Laravel Horizon work with Laravel 13 or 12? What’s the latest version support?
Yes, Horizon v5.x is officially supported for Laravel 13 and 12. Check the [Laravel docs](https://laravel.com/docs/horizon) for version-specific requirements. Older Laravel versions (9/10) may need Horizon v4.x, but v5.x is the recommended path for new projects.
Can I use Horizon with database queues instead of Redis?
Horizon is optimized for Redis queues and does not natively support database queues. While workarounds exist (like custom drivers), they’re unsupported and may introduce instability. Stick to Redis for full feature parity.
How do I configure Horizon workers for high availability in production?
Use a process supervisor like Supervisor or Docker to manage multiple Horizon workers. Configure `supervisor.json` or Docker Compose to distribute load across instances. Horizon’s `balance` option in `config/horizon.php` helps distribute jobs evenly.
What’s the best way to migrate from `php artisan queue:work` to Horizon?
Start by running Horizon in parallel with legacy workers (`php artisan horizon`). Monitor jobs via the dashboard to verify metrics. Once confident, replace `queue:work` with `horizon:listen` in your supervisor config and restart workers.
Does Horizon support delayed jobs or batch processing?
Yes, Horizon fully supports Laravel’s delayed jobs and batch processing. Configure `delay` in your job class or use `dispatch()->delay()` for delayed execution. Batch processing is handled via Redis lists and Horizon’s built-in batching logic.
How do I customize the Horizon dashboard or add my own metrics?
Extend the dashboard by publishing Horizon’s assets (`php artisan vendor:publish --tag=horizon-assets`) and modifying the Vue.js components in `resources/js/horizon`. For custom metrics, emit Laravel events (e.g., `JobProcessed`) and listen in your app.
What’s the impact of Horizon on PHP memory usage? How do I optimize?
Horizon workers consume memory like standard Laravel queue workers, but Redis optimizations reduce overhead. Monitor memory with `horizon:monitor` and adjust `memory` limits in `config/horizon.php`. Use `horizon:terminate` to force-kill stuck workers if needed.
Can I integrate Horizon with Laravel Forge or Valet for deployment?
Yes, Horizon works seamlessly with Forge (via Supervisor) and Valet (using `valet horizon`). Forge provides pre-configured Supervisor templates, while Valet’s CLI wrapper simplifies local testing. Docker deployments require custom `supervisor.json` or Docker Compose files.
Are there alternatives to Horizon for Laravel queue monitoring?
For Redis queues, Horizon is the most integrated option. Alternatives like **Spatie’s Horizon Scheduler** (for cron-like jobs) or **Laravel Telescope** (for broader debugging) exist, but none match Horizon’s depth for queue-specific metrics. For non-Redis queues, consider **Laravel Queue Monitor** (database-based).
How do I handle job failures or retries in Horizon?
Horizon surfaces failed jobs in the dashboard under the “Failed Jobs” tab. Retry failed jobs manually or automate retries via Laravel’s `retryAfter()` middleware. For bulk retries, use `php artisan horizon:retry` or integrate with a monitoring tool like Sentry.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport