Статусы источников

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

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

Статусы источников в отчёте

Информация о составе и статусах запрошенных источников всегда доступна в отчёте. Отчёт содержит два блока, описывающих состояние источников:

  1. Сводный блок статуса генерации отчёта. В нём указываются три переменных: количество успешно отработавших источников, количество источников в работе и количество источников, по которым запрос выполнился с ошибкой.

    • progress_ok — количество источников со значением статуса OK в переменной state.sources[].state;
    • progress_wait — количество источников со статусом PROGRESS в переменной state.sources[].state;
    • progress_error — количество источников со статусом ERROR в переменной state.sources[].state.
  2. Блок статусов ответа по каждому источнику. Для каждого источника указываются его краткий и расширенный статус:

    • state.sources[]._id — идентификатор источника;
    • state.sources[].state — краткая информация о статусе запроса к источнику;
    • state.sources[].extended_state — расширенная информация о статусе запроса к источнику.

Генерация отчёта считается завершённой в момент, когда все источники завершили процесс генерации и имеют статус OK или ERROR. Соответственно, значение переменной progress_wait в теле запрашиваемого отчёта становится равным 0.

Статусная модель запроса к источнику

В процессе получения данных запрос к источнику может переходить в следующие состояния:

Значение переменной state.sources[].extended_state Значение переменной state.sources[].state Описание
NONE PROGRESS Работа с источником ещё не начата.
Встречается на начальных этапах генерации отчёта
WAITING PROGRESS Источник ожидает данные для выполнения запроса
DELAYED PROGRESS Выполнение запроса к источнику отложено.
Обычно используется, если сервису не известно, будут ли получены данные, необходимые для выполнения запроса
PROGRESS PROGRESS Выполняется отправка запроса к источнику или обработка полученного ответа
SKIP OK Выполнение запроса к источнику было пропущено
OK OK Запрос к источнику и обработка ответа успешно завершены.
Выставляется даже в том случае, если получен пустой ответ
INTERNAL_ERROR ERROR Во время работы с источником произошла внутренняя ошибка системы
CANCEL ERROR Выполнение запроса к источнику было отменено.
Используется в случае отсутствия данных, необходимых для выполнения запроса
ERROR ERROR Произошла ошибка на стороне источника.
Источник не ответил за положенное время, получен некорректный ответ или получена ошибка

Пример информации о статусах ответов источников

{
  "progress_ok": 1,
  "progress_wait": 0,
  "progress_error": 1,
  "state": {
    "sources": [
      {
        "_id": "base",
        "state": "OK",
        "extended_state": "OK"
      },
      {
        "_id": "references.base",
        "state": "ERROR",
        "extended_state": "CANCEL"
      }
    ]
  }
}