0Pricing
PHP Academy · Урок

Мониторинг очередей с Laravel Horizon

Установите Horizon и наблюдайте за пропускной способностью очереди и неудачными заданиями

«Мониторинг очередей с Laravel Horizon» — бесплатный урок PHP Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.

Что такое Horizon?

Laravel Horizon предоставляет красивую панель мониторинга и систему настройки очередей на основе Redis, а также метрики в реальном времени, отслеживание пропускной способности и мониторинг заданий.

Установка Horizon

Установите Horizon через Composer и опубликуйте ресурсы.

$ composer require laravel/horizon
$ php artisan horizon:install
$ php artisan migrate

Запуск Horizon

Запустите Horizon как единый долгоживущий процесс (он заменяет queue:work).

$ php artisan horizon

Доступ к панели мониторинга

По умолчанию панель мониторинга Horizon доступна по адресу /horizon. В рабочей среде ограничьте доступ к ней только авторизованными пользователями.

<?php
// In HorizonServiceProvider:
Horizon::auth(function ($request) {
    return $request->user()?->isAdmin() ?? false;
});

Настройка horizon.php

Настройте рабочие процессы (окружения, супервизоры, приоритеты очередей и количество рабочих процессов) в config/horizon.php.

// config/horizon.php
"environments" => [
    "production" => [
        "supervisor-1" => [
            "connection" => "redis",
            "queue"      => ["emails", "default"],
            "processes"  => 10,
            "balance"    => "auto",
        ]
    ]
]

Супервизоры и балансировка

Супервизоры Horizon управляют группами рабочих процессов. При значении "balance" => "auto" Horizon автоматически масштабирует количество рабочих процессов в зависимости от длины очереди.

Панель метрик

Панель мониторинга Horizon показывает: количество заданий в минуту, неудачные задания, время ожидания, последние задания и статистику по каждой очереди.

Добавление тегов к заданиям

Добавляйте к заданиям теги, чтобы упростить их мониторинг и фильтрацию на панели мониторинга.

<?php
public function tags(): array
{
    return ["user:".$this->user->id, "email"];
}
// Then filter by tag in the Horizon dashboard

Неудачные задания в Horizon

Просматривайте невыполненные задания вместе с их исключениями и трассировками стека. Повторно запускайте отдельные невыполненные задания прямо из панели управления или через Artisan.

$ php artisan horizon:forget <uuid>
$ php artisan horizon:retry-failed

Запуск в рабочей среде с Supervisor

Используйте Linux Supervisor, чтобы поддерживать процесс Horizon в рабочем состоянии и перезапускать его при сбое.

[program:horizon]
command=php /srv/app/artisan horizon
autorestart=true
stdout_logfile=/var/log/horizon.log

Приостановка и продолжение

Приостанавливайте Horizon во время развертывания, чтобы корректно освободить очередь, а затем продолжайте работу.

$ php artisan horizon:pause
$ php artisan horizon:continue
$ php artisan horizon:terminate

Итоги

Horizon заменяет обработчики очереди одним процессом и удобной панелью управления. Настройте количество обработчиков в config/horizon.php. В рабочей среде используйте Supervisor, чтобы поддерживать Horizon в рабочем состоянии.

Быстрая проверка

Какая команда запускает Laravel Horizon?

Часто задаваемые вопросы

Урок «Мониторинг очередей с Laravel Horizon» бесплатный?

Да — полный текст урока «Мониторинг очередей с Laravel Horizon» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.

Чему я научусь в уроке «Мониторинг очередей с Laravel Horizon»?

Установите Horizon и наблюдайте за пропускной способностью очереди и неудачными заданиями Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать PHP Academy?

Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Мониторинг очередей с Laravel Horizon»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке PHP Academy?

Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы очередей и драйверы
  2. Создание и отправка заданий
  3. Повторные попытки, задержки и цепочки заданий
  4. Мониторинг очередей с Laravel Horizon
← Назад к PHP Academy