4.3.10. TaskReport

Описание

Метод возвращает отчет для выполненной задачи.

Запрос

{
  "user_id":(number),
  "methods":[
    {
      "method":"TaskReport",
      "params":{
        "project_id":(number),
        "task_ids":' id1 | [id1,id2] | "*" '
      }
    }
  ]
}

где:

  • user_id — целое число, идентификатор пользователя;

  • project_id — целое число, идентификатор проекта пользователя;

  • task_ids — идентификаторы задач, поле может задаваться в одном из следующих форматов:

    • id1 — целое число, идентификатор задачи,

    • [id1,id2] — массив целых чисел, идентификаторы задач,

    • "*" — строка, символ «звездочки», запрос информации обо всех запущенных задачах, а также задачах в очереди.

Ответ

{
  "reply":[
    {
      "method":"TaskReport",
      "result":[
        {
          "task_id":(number),
          "app_id":(number),
          "template_id":(number),
          "template_uri":(string),
          "status":(string),
          "uri":(string),
          "name":(string),
          "priority":(string),
          "file_size":(number),
          "container":(string),
          "file_duration":(number),
          "start":(string),
          "start_unix":(number),
          "analysis_duration":(number),
          "task_report":[
            {
              "report_status":(string),
              "report_format":(string),
              "report_url":(string)
            }
          ]
          "task_result":(string),
          "task_page":(string)
        }
      ],
      "errors":[(string)]
    }
  ]
}

где:

  • task_id — целое число, идентификатор пользователя;

  • app_id — целое число, идентификатор зонда;

  • template_id — целое число, идентификатор шаблона;

  • template_uri — строка, ссылка на web-страницу шаблона;

  • status — строка, статус, отражает этап, на котором находится задача. Список статусов:

    • Scheduled — задача создана и добавлена в очередь на запуск. Далее статус изменяется на один из описанных ниже,

    • Explore — задача отправлена на предварительный анализ зонду,

    • Running — задача запущена,

    • Completed — задача выполнена,

    • Rejected — запуск задачи был отклонен. Информацию о причине можно найти в web–интерфейсе в блоке Dashboard → Незавершенные задачи. Возможные причины:

      • Общая длительность медиафайла составила 0 секунд или зонд не смог определить длительность,

      • Медиафайл не найден по указанному пути URI,

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

      • Неподдерживаемый формат медиафайла;

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

    • Canceled — задача была остановлена. Возможные сценарии:

      • задача была остановлена пользователем в web-интерфейсе или с помощью метода TaskStop. Источник остановки будет также указан в блоке Dashboard → Незавершенные задачи,

      • задача была остановлена балансировщиком нагрузки в процессе вытеснения задачей с приоритетом Immediate. Более подробно работа балансировщика и описание приоритетов приведено на странице Dashboard.

    • Stalled — задача остановлена некорректно. Сервер перестал получать данные анализа, но команда на остановку задачи не была получена. Обычно связано с потерей связи сервера с зондом или некорректным завершением работы зонда. В этом случае система перезапустит задачу 3 раза (по умолчанию). Сценарий автоматического перезапуска задач можно изменить в настройках проекта ➝ в блоке Перезапуск Stalled задач.

  • uri — строка, путь к анализируемому файлу;

  • name — строка, имя файла;

  • priority — строка, приоритет задачи: low, normal, high, urgent, immediate;

  • file_size — целое число, размер файла в байтах;

  • container — строка, формат контейнера;

  • file_duration — целое число, длительность файла в секундах;

  • start — строка, дата и время создания задачи;

  • start_unix — вещественное число, дата и время создания задачи в формате Unix time с дробной частью (для увеличения точности отсчетов);

  • analysis_duration — целое число, длительность анализа в секундах;

  • report_status — строка, статус готовности отчета:

    • InProgress — строка, файл с отчетом в процессе подготовки,

    • Ready — строка, файл с отчетом готов.

  • report_format — строка, определяет формат файла с отчетом. Список форматов: CSV, JSON, PDF;

  • report_url — строка, адрес файла с отчетом;

  • task_result — строка, результат выполненной задачи:

    • Passed — строка, задача успешно выполнена, ошибок не обнаружено,

    • Warning — строка, задача выполнена, отчет содержит ошибки с уровнем критичности Warning,

    • Failed — строка, задача выполнена, отчет содержит ошибки с уровнем критичности Error или Fatal.

  • task_page — строка, адрес web-страницы задачи;

  • errors — массив строк, возвращает перечень ошибок.

Пример

Запрос утилитой cURL
#1. Запрос отчета для одной задачи.
curl http://172.16.1.41/ctrl_api/v1/json \
 -H "Content-Type: application/json" \
 --data '{"user_id":1,"methods":[{"method":"TaskReport","params":{"project_id":2,"task_ids":[2213]}}]}'

#2. Запрос отчета для трех задач с task_id 2213, 2222, 2288. Для третьей задачи задано несуществующее значения в поле ``task_ids``.
curl http://172.16.1.41/ctrl_api/v1/json \
 -H "Content-Type: application/json" \
 --data '{"user_id":1,"methods":[{"method":"TaskReport","params":{"project_id":2,"task_ids":[2213,2222,2288]}}]}'
Ответ на запрос из примера #1
{
  "reply": [
    {
      "method": "TaskReport",
      "result": [
        {
          "task_id": 2213,
          "app_id": 17,
          "template_id": 63,
          "template_uri": "http://172.16.1.41/projects/2/profiles?notif_id=63",
          "status": "Completed",
          "uri": "file:///mnt/VoD_storage/sample1.mp4",
          "name": "",
          "priority": "normal",
          "file_size": 77979254,
          "container": "MP4",
          "file_duration": 150,
          "start": "2026-04-03 16:15:19 +0700",
          "start_unix": 1775207719.2811599,
          "analysis_duration": 54,
          "task_report": [
            {
              "report_status": "Ready",
              "report_format": "JSON",
              "report_url": "http://172.16.1.41/projects/2/uploader_get?file=task_2213_sample1_mp4_json_origin.zip"
            }
          ],
          "task_result": "Failed",
          "task_page": "http://172.16.1.41/projects/2/apps/17/tasks/2213"
        }
      ]
    }
  ]
}
Ответ на запрос из примера #2
{
  "reply": [
    {
      "method": "TaskReport",
      "result": [
        {
          "task_id": 2222,
          "app_id": 17,
          "template_id": 63,
          "template_uri": "http://172.16.1.41/projects/2/profiles?notif_id=63",
          "status": "Completed",
          "uri": "file:///mnt/VoD_storage/sample2.mp4",
          "name": "Test2",
          "priority": "normal",
          "file_size": 160057200,
          "container": "MP4",
          "file_duration": 54,
          "start": "2026-04-03 16:15:19 +0700",
          "start_unix": 1775207719.2811599,
          "analysis_duration": 15,
          "task_report": [
            {
              "report_status": "Ready",
              "report_format": "JSON",
              "report_url": "http://172.16.1.41/projects/2/uploader_get?file=task_2222_sample2_mp4_json_origin.zip"
            },
            {
              "report_status": "Ready",
              "report_format": "CSV",
              "report_url": "http://172.16.1.41/projects/2/uploader_get?file=task_2222_sample2_mp4_csv_origin.zip"
            }
          ],
          "task_result": "Failed",
          "task_page": "http://172.16.1.41/projects/2/apps/17/tasks/2222"
        },
        {
          "task_id": 2213,
          "app_id": 17,
          "template_id": 63,
          "template_uri": "http://172.16.1.41/projects/2/profiles?notif_id=63",
          "status": "Completed",
          "uri": "file:///mnt/VoD_storage/sample1.mp4",
          "name": "",
          "priority": "normal",
          "file_size": 77979254,
          "container": "MP4",
          "file_duration": 150,
          "start": "2026-04-03 16:15:19 +0700",
          "start_unix": 1775207719.2811599,
          "analysis_duration": 54,
          "task_report": [
            {
              "report_status": "Ready",
              "report_format": "JSON",
              "report_url": "http://172.16.1.41/projects/2/uploader_get?file=task_2213_sample1_mp4_json_origin.zip"
            }
          ],
          "task_result": "Failed",
          "task_page": "http://172.16.1.41/projects/2/apps/17/tasks/2213"
        },
      ],
      "errors": [
        "Requested task IDs do not exist: [2288]"
      ]
    }
  ]
}