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]}}]}'
{
"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"
}
]
}
]
}
{
"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]"
]
}
]
}