Доброе время суток, уважаемые читатели!
В поддержку часто поступает вопрос, как можно с помощью API автоматизировать удаление завершеных заданий. В этой статье мы решим эту задачу.
Давайте создадим файл clearqueue.php и в нем опишем клаcc Queue
Для удаления задания из очереди нужно знать его ID, поэтому давайте опишем метод который получает список ID завершенных заданий. Для получения списка заданий будем использовать метод getTaskList
Массив заданий мы получили, теперь опишем метод удаляющий задания. Для удаления будем использовать метод ChangeTaskStatus изменяя статус задания на deleting
Теперь в index.php создадим объект класса Queue и вызовем метод очищающий очередь.
Запускаем. Проверяем очередь задач.
Задача решена.
С документацией по API вы можете ознакомиться по этой ссылке.
В поддержку часто поступает вопрос, как можно с помощью API автоматизировать удаление завершеных заданий. В этой статье мы решим эту задачу.
Давайте создадим файл clearqueue.php и в нем опишем клаcc Queue
Код:
class Queue{
protected $pass,$path;
function __construct($pass,$path){
$this->pass = $pass;
$this->path = $path;
}
}
Код:
/*метод возвращающий массив 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'];
}
Код:
/*Метод удаляющий задания из очереди. В качестве параметра принимает массив задач*/
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 вы можете ознакомиться по этой ссылке.