Laravel Horizon – Redis queues monitoring

Laravel Horizon is an elegant dashboard and configuration system for managing your Redis queues in Laravel applications. It provides a real-time view of your queue system, allowing you to monitor your job processing, manage workers, and gain insights into your queued jobs.

Key Features of Laravel Horizon:

  1. Dashboard: A beautiful dashboard that provides an overview of your queues, job statistics, and processing times.
  2. Real-Time Monitoring: View the current status of your jobs and workers in real time.
  3. Failed Job Management: Easily manage and retry failed jobs.
  4. Job Metrics: Gain insights into job processing times and other metrics to optimize your queue system.
  5. Queue Configuration: Allows you to configure how your queues and workers behave.

Installation

To get started with Laravel Horizon, follow these steps:

  1. Install Laravel Horizon: Use Composer to install the package:
  2. Publish the Horizon Configuration: After installing, publish the Horizon configuration file:
  3. Run Horizon: You can run Horizon using the Artisan command:

Configuration

Laravel Horizon’s configuration is stored in the config/horizon.php file. You can customize various settings, such as queue connections, timeouts, and more.

Example Configuration

Here’s a basic example of what your config/horizon.php file might look like:

Running Horizon

Once you’ve configured Horizon, you can start it with the following command:

This command will start processing jobs in your Redis queues based on your configuration. You can also run Horizon in the background using a process manager like Supervisor or systemd.

Accessing the Dashboard

You can access the Horizon dashboard by visiting /horizon in your browser. The dashboard provides various features, including:

  • Job Metrics: View metrics for job throughput, wait times, and failures.
  • Job Statistics: Analyze the success and failure rates of jobs.
  • Failed Jobs: Manage and retry failed jobs directly from the dashboard.

Monitoring Job Processing

Laravel Horizon provides several useful features for monitoring job processing:

  • Real-Time Updates: The dashboard updates in real time, showing you the current status of jobs and workers.
  • Job Details: Click on a job in the dashboard to view its details, including its status, attempts, and processing time.
  • Notifications: You can set up notifications for failed jobs to alert your team via Slack or other channels.

Handling Failed Jobs

Horizon makes it easy to manage failed jobs:

  1. Viewing Failed Jobs: Navigate to the “Failed Jobs” section in the Horizon dashboard to see all jobs that have failed.
  2. Retrying Jobs: You can retry a failed job directly from the dashboard by clicking the “Retry” button.
  3. Deleting Jobs: You can also delete failed jobs from the dashboard if they are no longer needed.

Customizing Job Retry Logic

You can customize the retry logic for specific jobs by defining a tries property in your job class:

Conclusion

Laravel Horizon is an invaluable tool for monitoring and managing Redis queues in your Laravel applications. With its intuitive dashboard, real-time monitoring, and robust job management features, you can ensure your job processing system runs smoothly and efficiently.

Additional Considerations

  • Supervisor Integration: Consider using a process manager like Supervisor to keep Horizon running in the background.
  • Performance: Regularly monitor job performance metrics to identify bottlenecks and optimize processing.
  • Security: Protect your Horizon dashboard by implementing authentication or IP whitelisting, especially in production environments.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top