Monitorowanie kolejek za pomocą Laravel Horizon
Zainstaluj Horizon i obserwuj przepustowość kolejek oraz nieudane zadania
Monitorowanie kolejek za pomocą Laravel Horizon to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PHP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PHP Academy zawiera 4 lekcji w sumie.
Czym jest Horizon?
Laravel Horizon zapewnia atrakcyjny panel i system konfiguracji dla kolejek opartych na Redisie, oferując metryki w czasie rzeczywistym, śledzenie przepustowości i monitorowanie jobów.
Instalowanie Horizon
Zainstaluj Horizon za pomocą Composera i opublikuj zasoby.
$ composer require laravel/horizon
$ php artisan horizon:install
$ php artisan migrateUruchamianie Horizon
Uruchom Horizon jako pojedynczy, długo działający proces (zastępuje queue:work).
$ php artisan horizonDostęp do panelu
Panel Horizon jest domyślnie dostępny pod adresem /horizon. W środowisku produkcyjnym ogranicz dostęp za pomocą gate wyłącznie do uprawnionych użytkowników.
<?php
// In HorizonServiceProvider:
Horizon::auth(function ($request) {
return $request->user()?->isAdmin() ?? false;
});Konfiguracja horizon.php
Konfiguruj workery (środowiska, supervisorów, priorytety kolejek i liczbę workerów) w pliku config/horizon.php.
// config/horizon.php
"environments" => [
"production" => [
"supervisor-1" => [
"connection" => "redis",
"queue" => ["emails", "default"],
"processes" => 10,
"balance" => "auto",
]
]
]Supervisorzy i równoważenie
Supervisorzy Horizon zarządzają pulami workerów. Przy ustawieniu "balance" => "auto" Horizon automatycznie skaluje liczbę workerów na podstawie długości kolejki.
Panel metryk
Panel Horizon pokazuje: liczbę jobów na minutę, nieudane joby, czasy oczekiwania, ostatnie joby oraz statystyki poszczególnych kolejek.
Oznaczanie Jobów
Oznaczaj joby, aby ułatwić ich monitorowanie i filtrowanie w panelu.
<?php
public function tags(): array
{
return ["user:".$this->user->id, "email"];
}
// Then filter by tag in the Horizon dashboardNieudane Joby w Horizon
Wyświetlaj nieudane zadania wraz z wyjątkami i śladami stosu. Ponawiaj pojedyncze nieudane zadania bezpośrednio z panelu lub za pomocą Artisan.
$ php artisan horizon:forget <uuid>
$ php artisan horizon:retry-failedUruchamianie w środowisku produkcyjnym za pomocą Supervisor
Należy użyć Linux Supervisor, aby utrzymywać działanie procesu Horizon i uruchamiać go ponownie w razie awarii.
[program:horizon]
command=php /srv/app/artisan horizon
autorestart=true
stdout_logfile=/var/log/horizon.logWstrzymywanie i wznawianie
Należy wstrzymać Horizon podczas wdrażania, aby umożliwić kontrolowane opróżnienie kolejki, a następnie wznowić jego działanie.
$ php artisan horizon:pause
$ php artisan horizon:continue
$ php artisan horizon:terminatePodsumowanie
Horizon zastępuje workery kolejki pojedynczym procesem i czytelnym panelem. Liczbę workerów należy skonfigurować w pliku config/horizon.php. W środowisku produkcyjnym należy użyć Supervisor, aby utrzymywać działanie Horizon.
Szybkie sprawdzenie
Jakie polecenie uruchamia Laravel Horizon?
Często zadawane pytania
Czy lekcja „Monitorowanie kolejek za pomocą Laravel Horizon” jest bezpłatna?
Tak — pełny tekst „Monitorowanie kolejek za pomocą Laravel Horizon” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PHP Academy, przejdź na CoddyKit PRO. Kurs PHP Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Monitorowanie kolejek za pomocą Laravel Horizon”?
Zainstaluj Horizon i obserwuj przepustowość kolejek oraz nieudane zadania Ćwiczysz PHP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć PHP Academy?
Nie wymagamy żadnego doświadczenia. PHP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Monitorowanie kolejek za pomocą Laravel Horizon”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji PHP Academy?
Tak. Każda lekcja PHP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Koncepcje kolejek i sterowniki
- Tworzenie i uruchamianie zadań
- Ponowienia, opóźnienia i łańcuchy zadań
- Monitorowanie kolejek za pomocą Laravel Horizon