0Pricing
PHP Academy · Lekcja

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 migrate

Uruchamianie Horizon

Uruchom Horizon jako pojedynczy, długo działający proces (zastępuje queue:work).

$ php artisan horizon

Dostę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 dashboard

Nieudane 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-failed

Uruchamianie 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.log

Wstrzymywanie 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:terminate

Podsumowanie

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

  1. Koncepcje kolejek i sterowniki
  2. Tworzenie i uruchamianie zadań
  3. Ponowienia, opóźnienia i łańcuchy zadań
  4. Monitorowanie kolejek za pomocą Laravel Horizon
← Powrót do PHP Academy