4.3.7. TaskStart

Описание

Метод позволяет создавать и запускать задачи проверки, а также возвращает идентификатор задачи task_id, позволяющий управлять задачей, отслеживать ее статус и запрашивать отчет.

Запрос

{
  "user_id":(number),
  "methods":[
    {
      "method":"TaskStart",
      "params":{
        "project_id":(number),
        "tasks":[
          {
            "template_id":(number),
            "uri":(string),
            "name":(string),
            "priority":(string)
          }
        ]
      }
    }
  ]
}

где:

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

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

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

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

  • name (опциональное поле) — строка, имя файла;

  • priority (опциональное поле) — строка, приоритет задачи: low, normal, high, urgent, immediate. Приоритет по умолчанию — normal. Балансировщик нагрузки распределяет задачи анализа между доступными зондами в порядке приоритетов от Immediate к Low.

Ответ

{
  "reply":[
    {
      "method":"TaskStart",
      "result":[
        {
          "task_id":(number),
          "initial_task_id":(number),
          "template_id":(number),
          "uri":(string),
          "name":(string),
          "priority":(string),
          "errors":[(string)
          ]
        }
      ]
    }
  ]
}

где:

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

  • initial_task_id — целое число, идентификатор группы задач в рамках цепочки перезапусков. Для любой задачи в группе — включая первую — initial_task_id равен task_id са́мой первой задачи. Если перезапусков не было, initial_task_id совпадает с task_id само́й задачи. Более подробно работа цепочки перезапусков и применение параметра initial_task_id приведены в описании метода TaskStatus;

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

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

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

  • priority — строка, приоритет задачи;

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

Пример

Запрос утилитой cURL
#1. Простой запрос на создание и запуск одной задачи.
curl http://172.16.1.41/ctrl_api/v1/json \
 -H "Content-Type: application/json" \
 --data '{"user_id":1,"methods":[{"method":"TaskStart","params":{"project_id":2,"tasks":[{"template_id":63,"uri":"file:///mnt/VoD_storage/sample1.mp4"}]}}]}'

#2.  Пример, в котором дополнительно передаются поля name и priority.
curl http://172.16.1.41/ctrl_api/v1/json \
 -H "Content-Type: application/json" \
 --data '{"user_id":1,"methods":[{"method":"TaskStart","params":{"project_id":2,"tasks":[{"template_id":63,"uri":"file:///mnt/VoD_storage/sample1.mp4","name":"Test","priority":"normal"}]}}]}'

#3.  Запрос на создание и запуск нескольких задач. Для третьей задачи задано заведомо несуществующее значения в поле template_id.
curl http://172.16.1.41/ctrl_api/v1/json \
 -H "Content-Type: application/json" \
 --data '{"user_id":1,"methods":[{"method":"TaskStart","params":{"project_id":2,"tasks":[{"template_id":63,"uri":"file:///mnt/VoD_storage/sample1.mp4","name":"Test1","priority":"low"},{"template_id":63,"uri":"file:///mnt/VoD_storage/sample2.mp4","name":"Test2","priority":"normal"},{"template_id":46,"uri":"file:///mnt/VoD_storage/sample3.mp4","name":"Test3","priority":"high"}]}}]}'
Ответ на запрос из примера #1
 {
   "reply": [
     {
       "method": "TaskStart",
       "result": [
         {
           "task_id": 2213,
           "initial_task_id": 2213,
           "uri": "file:///mnt/VoD_storage/sample1.mp4",
           "name": "",
           "template_id": 63,
           "priority": "normal"
         }
       ]
     }
   ]
 }
Ответ на запрос из примера #2
 {
   "reply": [
     {
       "method": "TaskStart",
       "result": [
         {
           "task_id": 2218,
           "initial_task_id": 2218,
           "uri": "file:///mnt/VoD_storage/sample1.mp4",
           "name": "Test",
           "template_id": 63,
           "priority": "normal"
         }
       ]
     }
   ]
 }
Ответ на запрос из примера #3
 {
   "reply": [
     {
       "method": "TaskStart",
       "result": [
         {
           "uri": "file:///mnt/VoD_storage/sample3.mp4",
           "name": "Test3",
           "template_id": 46,
           "priority": "high",
           "errors": [
             "'template_id' with id '46' doesn't exist"
           ]
         },
         {
           "task_id": 2221,
           "initial_task_id": 2221,
           "uri": "file:///mnt/VoD_storage/sample1.mp4",
           "name": "Test1",
           "template_id": 63,
           "priority": "low"
         },
         {
           "task_id": 2222,
           "initial_task_id": 2222,
           "uri": "file:///mnt/VoD_storage/sample2.mp4",
           "name": "Test2",
           "template_id": 63,
           "priority": "normal"
         }
       ]
     }
   ]
 }