4.3.8. TaskStop

Описание

Метод позволяет остановить задачу по ее task_ids. Остановленная задача получает статус Canceled и помещается в блок Незавершенные задачи на станице Dashboard.

Внимание

Система позволяет остановить запущенные задачи - со статусом Running.
Для остальных статусов: Scheduled, Explore, Completed, Rejected, Canceled, Stalled — остановка невозможна, т.к. задача еще не запущена, уже завершена или завершена неудачно.
Предварительно проверить статус задачи можно с помощью метода TaskStatus.

Запрос

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

где:

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

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

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

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

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

Ответ

{
  "reply":[
    {
      "method":"TaskStop",
      "result":[
        {
          "task_id":(number),
          "status":"Stop request was sent"
        }
      ]
    }
  ]
}

где:

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

  • status — строка, значение Stop request was sent означает успешную отправку команды для остановки задачи;

  • error — строка, значение Stopping task is unavailable возвращается для еще не запущенных или для успешно и неуспешно завершенных задач (см. статусы Scheduled, Explore, Completed, Rejected, Canceled, Stalled).

Пример

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

 #2. Запрос на остановку нескольких задач.
curl http://172.16.1.41/ctrl_api/v1/json \
  -H "Content-Type: application/json" \
  --data '{"user_id":1,"methods":[{"method":"TaskStop","params":{"project_id":2,"task_ids":[64,65]}}]}'

 #3. Запрос на остановку нескольких задач. Для третьей задачи задано заведомо несуществующее значения в поле task_ids.
 curl http://172.16.1.41/ctrl_api/v1/json \
  -H "Content-Type: application/json" \
  --data '{"user_id":1,"methods":[{"method":"TaskStop","params":{"project_id":2,"task_ids":[66,67,68]}}]}'
Ответ на запрос из примера #1
 {
   "reply": [
     {
       "method": "TaskStop",
       "result": [
         {
           "task_id": 63,
           "status": "Stop request was sent"
         }
       ]
     }
   ]
 }
Ответ на запрос из примера #2
 {
   "reply": [
     {
       "method": "TaskStop",
       "result": [
         {
           "task_id": 64,
           "status": "Stop request was sent"
         },
         {
           "task_id": 65,
           "status": "Stop request was sent"
         }
       ]
     }
   ]
 }
Ответ на запрос из примера #3
 {
   "reply": [
     {
       "method": "TaskStop",
      "result": [
         {
           "task_id": 66,
           "status": "Stop request was sent"
         },
         {
           "task_id": 67,
           "status": "Stop request was sent"
         },
         {
           "task_id": 68,
           "error": "Stopping task is unavailable"
         }
       ]
     }
   ]
 }