# Laravel Horizon

{% hint style="danger" %}
Для того чтобы модуль "Horizon" активировать, обязательно установите "[**supervisor**](broken://pages/6aBfpYiJXFS3lItIODfn)".

<mark style="color:red;">Без данного плагина, Horizon работать не будет, а если Horizon не будет работать, значит сообщения клиентам не будут отправляться.</mark>

<mark style="color:red;">**Рекомендуем обязательно настроить данный плагин**</mark>
{% endhint %}

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

## Конфигурация Horizon

{% hint style="info" %}
Если в меню панели управления отсутствует раздел **"Мониторинг"**, для включения перейди **"Пользователи** — **Список групп пользователей"**, выберите группу для которых хотите вывести раздел и перейдите к редактированию.

Во вкладке **"Админпанель"**, найдите и включите:

* Разрешить доступ к мониторингу данных
  {% endhint %}

После включения, откройте **"Мониторинг - Laravel horizon"**

<figure><img src="/files/m3N64KAnNNOVn4dfkvbx" alt=""><figcaption></figcaption></figure>

На открывшейся странице, можно отслеживать "Email", "Telegram" уведомления и другие различные события.

<figure><img src="/files/R9uo6dBhTWKMDlppZmDV" alt=""><figcaption><p>Интерфейс панели Horizon</p></figcaption></figure>

{% hint style="warning" %}
Если в разделе "Dashboard", отображается статус "<mark style="color:red;">**Inactive**</mark>", это означает что "Laravel Horizon" не настроен и события не будут отправляться.&#x20;
{% endhint %}

{% content-ref url="/pages/6aBfpYiJXFS3lItIODfn" %}
[Broken mention](broken://pages/6aBfpYiJXFS3lItIODfn)
{% endcontent-ref %}

## Список задач

### Задачи "для E-mail"

* **VerifyEmailJob** - Отправляет сообщение о подтверждении email клиента (Отсылается при регистрации клиента)
* **RegisterClientJob** - Отправляет сообщение (о данных клиента) на почту при создании аккаунта.
* **NewOrderJob** - Отправляет сообщение клиенту на почту о создании новой заявке
* **OrderStatusJob -** Отправляет сообщение клиенте на почту о совершенных действиях с заявкой (Заявка отклонена/Заявка выполнена/Заявка отложена)...
* **OrderRestoreJob** - Отправляет сообщение клиенту на почту о восстановление заявки и перевода в режим обработки
* **OrderRecountJob** - Отправляет сообщение клиенту на почту, в случае если сумма заявки была пересчитано

### Задачи "для Telegram"

* **TelegramAutoPaymentFailed -** Отправляет сообщение в telegram канал(бот) менеджерам, о неудачной выплате клиенту
* **TelegramFailedUpdateCoursesJob** - отправляет сообщение в telegram канал(бот) менеджерам, в случае неудачного обновления курсов
* **TelegramNewOrder** - Отправляет сообщение в telegram канал (бот) менеджерам, о создании новой заявки

#### Прочие задачи

* **StatusSiteEvent** - Включение и отключение тех. перерыва. (Не отсылает сообщения на почту)

## Разделы панели мониторинга

### Pending Jobs

В этом разделе находятся все сообщения telegram/email которые готовятся к отправке клиентам (Если в этом разделе есть хотя-бы одна запись, значит оно будет отправлен клиенту)

### Completed Jobs

В этом разделе находятся все сообщения которые уже были успешно отправлены клиентам и доставлены.

<figure><img src="/files/FiEzKx5aCyHHdpu0ctB2" alt=""><figcaption><p>Completed Jobs</p></figcaption></figure>

### &#x20;Failed Jobs

{% hint style="danger" %}
Если по какой та причине сообщение клиенту не было отправлено, обязательно зайдите в этот раздел, для того чтобы понять причину.
{% endhint %}

В этом разделе находятся все сообщение которые не были отправлены из-за какой та проблемы.

Если хотите перейти к деталям ошибки, то название на название. (Пример названия выделено в красном блоке).

<figure><img src="/files/03YfHuNyPUdqjjkzAk6O" alt=""><figcaption><p>Failed Jobs</p></figcaption></figure>

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

* Exception - Здесь ошибка причина ошибки (Почему сообщение не отправлена)
* Data - Здесь программный код, где именно возникла данная проблема.

<figure><img src="/files/D61h6TwIoB1jnA60EjMG" alt=""><figcaption></figcaption></figure>

## Вопросы и Ответы

<details>

<summary>У меня настроен Supervisord, почему Horizon показывает InActive?</summary>

Попробуйте перезапустить службы, выполнив команду&#x20;

```sh
sudo systemctl restart supervisor
```

</details>

<details>

<summary>У меня показывает статус "Active", но почему сообщении клиентам не отправляются?</summary>

Для этого в панели Horizon, откройте раздел "Failed Jobs", там вы можете увидеть задачу, откройте и в блоке "Exception" вы увидите текст ошибки.

</details>


---

# Agent Instructions: 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:

```
GET https://docs.iexexchanger.com/dev-help/laravel-horizon.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
