Cos’è Horizon
Laravel Horizon è la dashboard di monitoraggio dedicata alle code Redis di Laravel. Visualizza in tempo reale throughput, tempi di esecuzione e fallimenti dei job e gestisci la configurazione dei worker via codice.Horizon estende le funzionalità di base delle code. Consulta prima Code e job e assicurati che sia disponibile Redis.
Installazione
Installazione:config/horizon.php e app/Providers/HorizonServiceProvider.php.
Configurazione
Struttura di config/horizon.php
config/horizon.php gestisce le impostazioni dei worker. Il centro è environments.
Horizon usa internamente una connessione Redis chiamata
horizon. Non riutilizzare questo nome in config/database.php.Supervisor
Ogni environment ha uno o più “supervisor”. Sono unità di gestione dei worker: puoi avere più supervisor con diverse code, strategie e numero di processi.Default
Condefaults imposti valori comuni a tutti i supervisor.
Modalità manutenzione
Di default Horizon non elabora job in manutenzione. Conforce sì.
Tentativi
0 = tentativi illimitati.
Timeout
Backoff
Strategie di bilanciamento
auto (predefinita)
auto (predefinita)
Regola il numero di worker in base al carico.
time— tempo stimato per svuotare la codasize— numero di job in coda
Con
auto l’ordine delle code non implica priorità. Per priorità stretta usa più supervisor.simple
simple
Numero di worker fisso, distribuiti tra le code.5 processi per coda.
false (nessun bilanciamento)
false (nessun bilanciamento)
Priorità stretta secondo l’ordine delle code.
default sempre prima di notifications.Autorizzazione della dashboard
La dashboard è su/horizon. In locale è accessibile a tutti; in produzione limita con una gate.
Modifica gate() in app/Providers/HorizonServiceProvider.php.
Avvio di Horizon
Comandi base
Sviluppo locale: auto-restart
Supervisor in produzione
Installazione:/etc/supervisor/conf.d/horizon.conf):
autostart=true/autorestart=true, si riavvia da solo.
Gestione dei job
Tag
Horizon aggiunge automaticamente tag ai job in base ai modelli Eloquent che ricevono.tags():
tags().
Silenziare job
Inconfig/horizon.php:
Silenced.
Metriche e monitoraggio
Pianifica gli snapshot:Notifiche dei fallimenti
Notifiche per attese troppo lunghe. Inboot() di HorizonServiceProvider:
Soglie di attesa
Inconfig/horizon.php:
0 disabilita.
Job falliti
Aggiornamento
Consulta sempre la Guida all’upgrade.Pagine correlate
Code e job
Le basi delle code Laravel: creazione, dispatch, batch e gestione fallimenti.
Redis
Configurazione e uso di Redis, backend necessario per Horizon.