Qu’est-ce que Horizon
Laravel Horizon est un tableau de bord dédié aux queues Redis de Laravel. Débit des jobs, temps d’exécution, échecs — le tout en temps réel, avec une configuration des workers gérée par code.Horizon complète les fonctionnalités de base. Lisez d’abord Queues et jobs et Redis est obligatoire en backend.
Installation
Installez via Composer.config/horizon.php et app/Providers/HorizonServiceProvider.php.
Configuration
config/horizon.php
Ce fichier gère la configuration des workers. Le cœur est l’option environments.
Horizon utilise en interne une connexion Redis nommée
horizon. Ne réutilisez pas ce nom dans config/database.php.Superviseurs
Un environnement peut contenir plusieurs « superviseurs ». Un superviseur groupe des workers avec ses propres files, stratégie d’équilibrage et nombre de processus.Defaults
Utilisezdefaults pour partager des valeurs entre tous les superviseurs.
Mode maintenance
Par défaut Horizon ne traite pas les jobs en maintenance. Forcez avecforce.
Tentatives max
0 = illimité.
Timeout
Backoff
Attente entre les tentatives.Stratégies d’équilibrage
Trois stratégies :auto (défaut)
auto (défaut)
Ajuste automatiquement le nombre de workers selon la charge.
minProcesses et maxProcesses fixent les bornes.time: temps estimé pour vider la filesize: nombre de jobs
En
auto, l’ordre des files n’indique pas la priorité. Utilisez plusieurs superviseurs pour forcer la priorité.simple
simple
Nombre fixe de workers réparti à parts égales.Ici, 5 processus par file.
false (aucun équilibrage)
false (aucun équilibrage)
Ordre strict, comme la queue par défaut, mais avec scaling selon l’accumulation.Les jobs
default passent toujours avant notifications.Autorisation du dashboard
Le dashboard est accessible sur/horizon. En local, tout le monde y accède ; en production, restreignez via une gate.
Éditez la méthode gate() de app/Providers/HorizonServiceProvider.php.
Démarrer Horizon
Commandes
Local : redémarrage auto
horizon:listen redémarre Horizon quand un fichier change.
Supervisor en production
Faites tourner Horizon en continu avec Supervisor.Installation
Config
Créez/etc/supervisor/conf.d/horizon.conf.
Démarrage
Déploiement
À chaque déploiement, redémarrez Horizon pour appliquer les changements.autostart=true / autorestart=true, il redémarre automatiquement.
Gestion des jobs
Tags
Horizon détecte automatiquement les modèles Eloquent liés à un job et pose des tags.tags().
tags().
Silence
Masquer certains jobs de la liste « Completed Jobs » viaconfig/horizon.php.
Silenced.
Métriques et supervision
Le dashboard des métriques affiche débit et durée des jobs/files. Planifiez des snapshots réguliers.Notifications d’échec
Recevez des notifications quand une file s’allonge. Dansboot() de HorizonServiceProvider.
Seuils d’attente
Réglezwaits dans config/horizon.php.
0 désactive la notification.
Gestion des jobs échoués
Suppression par ID ou UUID.Mise à jour
Consultez toujours le guide de mise à jour avant une montée de version majeure.Pages associées
Queues et jobs
Bases des queues Laravel : création, dispatch, batch, échecs.
Redis
Configuration et usage de Redis, backend requis par Horizon.