Доброе время суток, уважаемые читатели!
В поддержку часто поступает вопрос, как можно с помощью API автоматизировать удаление завершеных заданий. В этой статье мы решим эту задачу.
Давайте создадим файл clearqueue.php и в нем опишем клаcc Queue
Для удаления задания из очереди нужно знать его ID, поэтому давайте опишем метод который получает список ID завершенных заданий. Для получения списка заданий будем использовать метод getTaskListКод:class Queue{ protected $pass,$path; function __construct($pass,$path){ $this->pass = $pass; $this->path = $path; } }
Массив заданий мы получили, теперь опишем метод удаляющий задания. Для удаления будем использовать метод ChangeTaskStatus изменяя статус задания на deletingКод:/*метод возвращающий массив id завершенных заданий*/ function getTaskList(){ $json = json_encode([ 'password' => $this->pass, 'action' => 'getTasksList', "data" => [ 'completed' => 1, ] ]); $ch = curl_init($this->path); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $json); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Length: ' . strlen($json))); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/plain; charset=UTF-8')); $response = curl_exec($ch); curl_close($ch); $response = json_decode($response, true); return $response['data']; }
Теперь в index.php создадим объект класса Queue и вызовем метод очищающий очередь.Код:/*Метод удаляющий задания из очереди. В качестве параметра принимает массив задач*/ function ClearQueue($tasks){ foreach($tasks as $task){ $json = json_encode([ 'password' => $this->pass, 'action' => 'changeTaskStatus', "data" => [ 'taskUid' => $task, 'toStatus' => 'deleting', ] ]); $ch = curl_init($this->path); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $json); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Length: ' . strlen($json))); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/plain; charset=UTF-8')); $response = curl_exec($ch); curl_close($ch); } }
Запускаем. Проверяем очередь задач.Код:<?php require_once('clearqueue.php'); $queue = new Queue('','http://127.0.0.1:9091/API'); $tasks = $queue->getTaskList(); $queue->ClearQueue($tasks);
Задача решена.
С документацией по API вы можете ознакомиться по этой ссылке.
-
Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!Скрыть объявление
Работаем с API, часть 3
Чистим очередь задач используя API
Метки: