> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/knowledge-base/servery-i-domeny/overview/process-map/horizon.md).

# Laravel Horizon

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

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

## Где открыть и какое право нужно

* Путь: **«Утилиты» — «Horizon и Pulse» — «Laravel Horizon»**.
* Право: **«Разрешить доступ к мониторингу данных» из блока «Админпанель»**.
* Где выдать: **«Пользователи» — «Список групп пользователей»**. Откройте нужную группу.

Экран содержит технические имена заданий и ошибки. Не выдавайте это право обычному оператору без необходимости.

Состояние самой службы смотрите по пути **«Утилиты» — «Службы»**. Для просмотра требуется **«Просмотр служб обменника»**, а для действий «Запустить», «Остановить» и «Перезапустить» — **«Управление службами обменника» из блока «Админпанель»**. Операционное право Horizon не заменяет права управления службой.

## Что обслуживает Horizon

Один Horizon запускает группы обработчиков, заданные текущей серверной конфигурацией: обычные и приоритетные операции, медиа, аналитику, уведомления, чат, AI, административный поиск и диагностику.

{% hint style="danger" %}
Не запускайте рядом постоянный `queue:work`, пока не подтверждено, что нужной очереди нет в Horizon. Каждая очередь должна обслуживаться ровно одним механизмом.
{% endhint %}

## Проверка на новом сервере

```bash
systemctl --no-pager --full status iex-horizon.service
sudo -u <ПОЛЬЗОВАТЕЛЬ_ПРИЛОЖЕНИЯ> /usr/bin/php8.5 <ПУТЬ_BACKEND>/artisan horizon:status
journalctl -u iex-horizon.service --since '-1 hour' --no-pager
```

После проверки процесса вызовите одну безопасную задачу и подтвердите её пользовательский результат.

## Метрики и Scheduler

Снимки Horizon создаются через Laravel Scheduler. Если задания выполняются, но графики не обновляются, проверьте `cron.service`, `/etc/cron.d/iexexchanger-scheduler` и список расписания. Перезапуск Horizon сам по себе не исправит остановленный Scheduler.

## Ошибки и повторы

1. Зафиксируйте очередь, время, число попыток и первую ошибку.
2. Проверьте внешний сервис: действие могло завершиться до ошибки ответа.
3. Устраните причину.
4. Повторите одну безопасную задачу.
5. Проверьте отсутствие дубля и конечный результат.

Платёж, callback, выплата и начисление требуют внешней сверки до повтора. Удаление записи об ошибке не отменяет уже выполненную финансовую операцию.

## После обновления

Экран **«Обновления»** сам управляет корректным переключением и службой Horizon. Не выполняйте ручной `horizon:terminate` параллельно операции. После завершения проверьте экран Horizon, отставание и одну безопасную задачу.

Если требуется отдельное действие после диагностики, используйте строку **«Horizon»** на экране **«Утилиты» — «Службы»** и дождитесь записи во вкладке «Журнал действий».

Для существующего сервера под FASTPANEL используется его текущая Supervisor-схема; она описана отдельно. Общие возможности Horizon приведены в [официальной документации Laravel](https://laravel.com/docs/horizon).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.iexexchanger.com/knowledge-base/servery-i-domeny/overview/process-map/horizon.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
