> ## Documentation Index
> Fetch the complete documentation index at: https://help.teable.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Вычисляемая исходящая очередь

> Отслеживайте доставку BullMQ и накопление вычисляемых задач в панели администратора.

<Tip>Доступно для самостоятельно развернутого тарифа Business и выше</Tip>

Путь: Панель администратора → Вычисляемая исходящая очередь

Используйте **Вычисляемую исходящую очередь**, если значения формул, подстановок или других вычисляемых Полей перестали обновляться либо обновляются значительно дольше ожидаемого. На странице отображаются общее состояние задач, задания в очереди, задачи, которым может потребоваться восстановление, и все Пространства, для которых вычисляемые задачи сейчас приостановлены.

## Проверка состояния работоспособности

Статус рядом с заголовком страницы показывает, требуют ли вычисляемые задачи внимания:

| Статус                          | Значение                                                                            |
| ------------------------------- | ----------------------------------------------------------------------------------- |
| **Работоспособно**              | Вычисляемые задачи выполняются нормально.                                           |
| **Сниженная работоспособность** | Teable обнаружил сбои, задачи с превышенным временем ожидания или растущую очередь. |
| **Критично**                    | BullMQ недоступен или нет доступного воркера для обработки задач.                   |

Если статус требует внимания, на странице указывается причина.

## Поиск задачи в очереди

**Текущая очередь BullMQ** содержит задания, которые Teable по-прежнему хранит, поэтому вы можете отслеживать вычисляемую задачу или искать медленные задачи.

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

Чтобы сузить список:

* Нажимайте плитки состояний над таблицей для фильтрации по состоянию: **Ожидание**, **Активно**, **Отложено**, **Сбой**, **Завершено (сохранено)** и т. д. Можно выбрать несколько состояний одновременно, а при наведении на плитку отображается значение этого состояния.
* Фильтруйте по **Пространству**, **Базе**, **Причине** или **Результату**, ищите задачу, Базу, Пространство или ошибку либо задайте минимальное время обработки, чтобы найти медленные задачи.
* Нажмите строку, чтобы открыть **Цепочку вычислений**: временные метки очереди, задержку доставки, время обработки, полную причину сбоя с отредактированным SQL для неудачной доставки и описанные ниже сведения о распространении.

<Info>**Завершено** не означает, что задача выполнила работу. Метка результата показывает, что фактически сделала доставка: **Обработано** выполнило задачу, **Без изменений** не обнаружило ничего, что осталось сделать, **Отложено** перенесло ее на более позднее время, а **Припарковано** означает, что ее область действия приостановлена. Фильтр **Результат** сужает список по этому результату и показывает, сколько доставок охватывает каждый из них, поэтому сочетание **Завершено (сохранено)** с **Обработано** оставляет только доставки, которые действительно выполнили задачу.</Info>

Строка со сбоем — это история одной попытки доставки, а не зависшая задача. Постоянная задача продолжает повторные попытки самостоятельно, поэтому изучите столбец **Состояние реестра**, чтобы решить, нужно ли действовать: **Урегулировано** означает, что более поздняя повторная попытка уже завершилась успешно, а **Недоставленное письмо** ведет к обслуживанию аномалий. Урегулированные сбои по умолчанию скрыты; баннер показывает их количество и позволяет отобразить их.

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

Плитка состояния также может учитывать записи, данные заданий для которых больше не существуют в Redis — обычно они остаются после вытеснения или потери данных. Список не может их показать, поэтому страница объясняет расхождение под таблицей. Teable самостоятельно удаляет такие остатки из состояния сбоя; **Очистить историю сбоев** удаляет их немедленно.

## Отслеживание распространения значения

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

| Раздел                    | На какой вопрос отвечает                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Сводка                    | Сквозная задержка, время изменения источника, время стабилизации значения, а также таблица и Поля, запустившие выполнение. Метка **Вычисляется** означает, что цепочка все еще выполняется.                                                                                                                                                                                                                                                                                                                                                     |
| **Временная шкала**       | Когда выполнение было поставлено в очередь, запущено, завершено или завершилось с ошибкой.                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| **Цепочка задач**         | Все задачи в каскаде, вложенные под задачей, которая поставила их в очередь, чтобы было видно источник каждой ветви. Каждая строка показывает состояние, шаги плана, **Цель записи** (таблицу и Поля, которые обновляет задача), **Измененные строки**, глубину каскада, время постановки в очередь и длительность.                                                                                                                                                                                                                             |
| **Распространение Полей** | Какие Поля выполнение читало и записывало и как между ними прошло изменение. Синяя пунктирная линия обозначает источник, приведший к этой записи, серая — входные данные, не записанные в этом запуске, зеленая — данные, записанные в этом запуске, а стрелки обозначают зависимости Полей или переходы по ссылкам, а не порядок шагов. Отображаются только источники, которые действительно достигают записей этого запуска. Используйте **Развернуть**, чтобы открыть график во весь экран, если широкую цепочку сложно проследить в строке. |

<Info>Реестр цепочки записывает только задачи, созданные после выпуска этой функции, и хранит историю 7 дней. Для более старой задачи отображаются факты очереди без графика распространения. Для начальной задачи, которую воркер еще не спланировал, отображаются только Поля-триггеры. Если изменение не привело к нижестоящим вычисляемым записям, график сообщает об этом: от этих Полей ничего не зависело через формулу, подстановку, свертку или заголовок ссылки.</Info>

## Обработка аномальных задач

<Info>Количество **Сбоев** и раздел **Обслуживание аномалий** показывают разные типы проблем, поэтому их значения могут отличаться.</Info>

**Обслуживание аномалий** объединяет аномалии в проблемные группы — по одной для каждой Базы, исходной таблицы и ошибки, — поэтому легко обнаружить одну первопричину. Перед восстановлением чего-либо изучите причину сбоя и устраните основную проблему. Разверните группу, чтобы прочитать сведения об ошибке и охватываемых ею задачах; эти строки предназначены для проверки, а восстановление всегда выполняется для всей группы.

Доступные для группы действия зависят от ее типа:

| Тип аномалии                 | Действие                                                        | Что происходит                                                                                                                                                                                                    |
| ---------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Недоставленное письмо**    | **Восстановить всю группу**                                     | Восстанавливает все недоставленные письма, находящиеся в группе в данный момент, в постоянную очередь и повторно доставляет их. Все остальные группы остаются без изменений.                                      |
| **Недоставленное письмо**    | **Удалить группу** (в меню **Дополнительные действия**)         | Безвозвратно удаляет недоставленные письма в этой группе. После этого их нельзя восстановить или повторно воспроизвести, поэтому используйте действие только тогда, когда повторное воспроизведение бессмысленно. |
| **Превышено время ожидания** | **Повторно активировать последнее превышение времени ожидания** | Активирует очередь для самой новой задачи в группе, чтобы воркер мог ее обработать.                                                                                                                               |

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

Группа с пометкой **База удалена** относится к Базе, которой больше не существует. Ее восстановление сразу же снова завершится неудачей, поэтому доступно только действие **Удалить группу**.

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

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

## Приостановка вычисляемых задач для Пространства

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

<Steps>
  <Step title="Откройте диалог приостановки">Нажмите **Приостановить Пространство**.</Step>
  <Step title="Найдите Пространство">Найдите по идентификатору или названию Пространства, затем выберите его из результатов.</Step>
  <Step title="Выберите длительность">Установите для параметра **Длительность приостановки** значение 15, 30, 60 или 120 минут.</Step>
  <Step title="Укажите причину (необязательно)">Укажите инцидент или окно обслуживания в поле **Причина**.</Step>
  <Step title="Подтвердите">Нажмите **Подтвердить приостановку**.</Step>
</Steps>

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

Приостановка всегда заканчивается автоматически, а максимальная доступная длительность составляет два часа. Если инцидент длится дольше, снова приостановите Пространство на этой странице. В списке отображаются все активные приостановки: кто их создал, почему и когда они автоматически возобновятся, а также сколько ожидающих задач удерживают активные приостановки, чтобы вы могли оценить накопление, которое будет освобождено при возобновлении. Чтобы снять приостановку раньше, нажмите **Возобновить** в ее строке и подтвердите действие.

## Настройка параллелизма

В разделе очереди есть два элемента управления параллелизмом. Каждый из них задает переопределение для всего кластера, которое все процессы применяют примерно в течение 15 секунд без перезапуска; каждый параметр можно сбросить, чтобы процессы вернулись к собственным настройкам окружения. Метка **Переопределено** отмечает элемент управления, который больше не использует значение по умолчанию.

| Элемент управления                      | Что ограничивает                                                                                                                                                                                                 |
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Параллелизм на процесс**              | Сколько вычисляемых задач одновременно обрабатывает каждый процесс воркера.                                                                                                                                      |
| **Ограничения получения задач на Базу** | Сколько вычисляемых задач одновременно выполняется для одной Базы (**На Базу**) и для одной исходной таблицы в ней (**На исходную таблицу**). По умолчанию оба значения равны 2 и принимают значения от 1 до 16. |

Увеличивайте ограничения получения задач, если узким местом является одна загруженная База, и параллелизм на процесс, если в очередь одновременно поставлено много Баз.

<Warning>Более высокий параллелизм сильнее нагружает вашу базу данных. Пространства, хранящие данные в [арендаторе базы данных](/ru/basic/admin-panel/database-tenant), сохраняют значения ограничений получения задач из настроек окружения по умолчанию, поскольку их пулы подключений рассчитаны на эти значения.</Warning>
